import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { PatientStatusSchema } from '../enums/PatientStatus.schema';
import { AppointmentProcedureUncheckedCreateNestedManyWithoutAppointmentInputObjectSchema as AppointmentProcedureUncheckedCreateNestedManyWithoutAppointmentInputObjectSchema } from './AppointmentProcedureUncheckedCreateNestedManyWithoutAppointmentInput.schema';
import { ClaimUncheckedCreateNestedManyWithoutAppointmentInputObjectSchema as ClaimUncheckedCreateNestedManyWithoutAppointmentInputObjectSchema } from './ClaimUncheckedCreateNestedManyWithoutAppointmentInput.schema';
import { AppointmentFileUncheckedCreateNestedManyWithoutAppointmentInputObjectSchema as AppointmentFileUncheckedCreateNestedManyWithoutAppointmentInputObjectSchema } from './AppointmentFileUncheckedCreateNestedManyWithoutAppointmentInput.schema'

const makeSchema = () => z.object({
  id: z.number().int().optional(),
  patientId: z.number().int(),
  userId: z.number().int(),
  title: z.string(),
  date: z.coerce.date(),
  startTime: z.string(),
  endTime: z.string(),
  type: z.string(),
  typeLocked: z.boolean().optional(),
  notes: z.string().optional().nullable(),
  procedureCodeNotes: z.string().optional().nullable(),
  status: z.string().optional(),
  movedByAi: z.boolean().optional(),
  createdAt: z.coerce.date().optional(),
  eligibilityStatus: PatientStatusSchema.optional(),
  procedures: z.lazy(() => AppointmentProcedureUncheckedCreateNestedManyWithoutAppointmentInputObjectSchema).optional(),
  claims: z.lazy(() => ClaimUncheckedCreateNestedManyWithoutAppointmentInputObjectSchema).optional(),
  files: z.lazy(() => AppointmentFileUncheckedCreateNestedManyWithoutAppointmentInputObjectSchema).optional()
}).strict();
export const AppointmentUncheckedCreateWithoutStaffInputObjectSchema: z.ZodType<Prisma.AppointmentUncheckedCreateWithoutStaffInput> = makeSchema() as unknown as z.ZodType<Prisma.AppointmentUncheckedCreateWithoutStaffInput>;
export const AppointmentUncheckedCreateWithoutStaffInputObjectZodSchema = makeSchema();
