import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { IntFieldUpdateOperationsInputObjectSchema as IntFieldUpdateOperationsInputObjectSchema } from './IntFieldUpdateOperationsInput.schema';
import { StringFieldUpdateOperationsInputObjectSchema as StringFieldUpdateOperationsInputObjectSchema } from './StringFieldUpdateOperationsInput.schema';
import { NullableDateTimeFieldUpdateOperationsInputObjectSchema as NullableDateTimeFieldUpdateOperationsInputObjectSchema } from './NullableDateTimeFieldUpdateOperationsInput.schema';
import { NullableStringFieldUpdateOperationsInputObjectSchema as NullableStringFieldUpdateOperationsInputObjectSchema } from './NullableStringFieldUpdateOperationsInput.schema';
import { PatientStatusSchema } from '../enums/PatientStatus.schema';
import { EnumPatientStatusFieldUpdateOperationsInputObjectSchema as EnumPatientStatusFieldUpdateOperationsInputObjectSchema } from './EnumPatientStatusFieldUpdateOperationsInput.schema';
import { DateTimeFieldUpdateOperationsInputObjectSchema as DateTimeFieldUpdateOperationsInputObjectSchema } from './DateTimeFieldUpdateOperationsInput.schema';
import { AppointmentUncheckedUpdateManyWithoutPatientNestedInputObjectSchema as AppointmentUncheckedUpdateManyWithoutPatientNestedInputObjectSchema } from './AppointmentUncheckedUpdateManyWithoutPatientNestedInput.schema';
import { AppointmentProcedureUncheckedUpdateManyWithoutPatientNestedInputObjectSchema as AppointmentProcedureUncheckedUpdateManyWithoutPatientNestedInputObjectSchema } from './AppointmentProcedureUncheckedUpdateManyWithoutPatientNestedInput.schema';
import { PdfGroupUncheckedUpdateManyWithoutPatientNestedInputObjectSchema as PdfGroupUncheckedUpdateManyWithoutPatientNestedInputObjectSchema } from './PdfGroupUncheckedUpdateManyWithoutPatientNestedInput.schema';
import { PaymentUncheckedUpdateManyWithoutPatientNestedInputObjectSchema as PaymentUncheckedUpdateManyWithoutPatientNestedInputObjectSchema } from './PaymentUncheckedUpdateManyWithoutPatientNestedInput.schema';
import { CommunicationUncheckedUpdateManyWithoutPatientNestedInputObjectSchema as CommunicationUncheckedUpdateManyWithoutPatientNestedInputObjectSchema } from './CommunicationUncheckedUpdateManyWithoutPatientNestedInput.schema';
import { PatientDocumentUncheckedUpdateManyWithoutPatientNestedInputObjectSchema as PatientDocumentUncheckedUpdateManyWithoutPatientNestedInputObjectSchema } from './PatientDocumentUncheckedUpdateManyWithoutPatientNestedInput.schema';
import { PatientConversationUncheckedUpdateOneWithoutPatientNestedInputObjectSchema as PatientConversationUncheckedUpdateOneWithoutPatientNestedInputObjectSchema } from './PatientConversationUncheckedUpdateOneWithoutPatientNestedInput.schema';
import { CloudFolderUncheckedUpdateManyWithoutPatientNestedInputObjectSchema as CloudFolderUncheckedUpdateManyWithoutPatientNestedInputObjectSchema } from './CloudFolderUncheckedUpdateManyWithoutPatientNestedInput.schema'

const makeSchema = () => z.object({
  id: z.union([z.number().int(), z.lazy(() => IntFieldUpdateOperationsInputObjectSchema)]).optional(),
  firstName: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
  lastName: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
  dateOfBirth: z.union([z.coerce.date(), z.lazy(() => NullableDateTimeFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  gender: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
  phone: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
  email: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  address: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  city: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  zipCode: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  insuranceProvider: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  insuranceId: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  groupNumber: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  policyHolder: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  allergies: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  medicalConditions: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  preferredLanguage: z.union([z.string(), z.lazy(() => NullableStringFieldUpdateOperationsInputObjectSchema)]).optional().nullable(),
  status: z.union([PatientStatusSchema, z.lazy(() => EnumPatientStatusFieldUpdateOperationsInputObjectSchema)]).optional(),
  userId: z.union([z.number().int(), z.lazy(() => IntFieldUpdateOperationsInputObjectSchema)]).optional(),
  createdAt: z.union([z.coerce.date(), z.lazy(() => DateTimeFieldUpdateOperationsInputObjectSchema)]).optional(),
  updatedAt: z.union([z.coerce.date(), z.lazy(() => DateTimeFieldUpdateOperationsInputObjectSchema)]).optional(),
  appointments: z.lazy(() => AppointmentUncheckedUpdateManyWithoutPatientNestedInputObjectSchema).optional(),
  procedures: z.lazy(() => AppointmentProcedureUncheckedUpdateManyWithoutPatientNestedInputObjectSchema).optional(),
  groups: z.lazy(() => PdfGroupUncheckedUpdateManyWithoutPatientNestedInputObjectSchema).optional(),
  payment: z.lazy(() => PaymentUncheckedUpdateManyWithoutPatientNestedInputObjectSchema).optional(),
  communications: z.lazy(() => CommunicationUncheckedUpdateManyWithoutPatientNestedInputObjectSchema).optional(),
  documents: z.lazy(() => PatientDocumentUncheckedUpdateManyWithoutPatientNestedInputObjectSchema).optional(),
  conversation: z.lazy(() => PatientConversationUncheckedUpdateOneWithoutPatientNestedInputObjectSchema).optional(),
  cloudFolders: z.lazy(() => CloudFolderUncheckedUpdateManyWithoutPatientNestedInputObjectSchema).optional()
}).strict();
export const PatientUncheckedUpdateWithoutClaimsInputObjectSchema: z.ZodType<Prisma.PatientUncheckedUpdateWithoutClaimsInput> = makeSchema() as unknown as z.ZodType<Prisma.PatientUncheckedUpdateWithoutClaimsInput>;
export const PatientUncheckedUpdateWithoutClaimsInputObjectZodSchema = makeSchema();
