import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { UserCreateNestedOneWithoutNpiProvidersInputObjectSchema as UserCreateNestedOneWithoutNpiProvidersInputObjectSchema } from './UserCreateNestedOneWithoutNpiProvidersInput.schema';
import { ClaimCreateNestedManyWithoutNpiProviderInputObjectSchema as ClaimCreateNestedManyWithoutNpiProviderInputObjectSchema } from './ClaimCreateNestedManyWithoutNpiProviderInput.schema';
import { CommissionBatchCreateNestedManyWithoutNpiProviderInputObjectSchema as CommissionBatchCreateNestedManyWithoutNpiProviderInputObjectSchema } from './CommissionBatchCreateNestedManyWithoutNpiProviderInput.schema';
import { AppointmentProcedureCreateNestedManyWithoutNpiProviderInputObjectSchema as AppointmentProcedureCreateNestedManyWithoutNpiProviderInputObjectSchema } from './AppointmentProcedureCreateNestedManyWithoutNpiProviderInput.schema'

const makeSchema = () => z.object({
  npiNumber: z.string(),
  providerName: z.string(),
  sortOrder: z.number().int().optional(),
  createdAt: z.coerce.date().optional(),
  user: z.lazy(() => UserCreateNestedOneWithoutNpiProvidersInputObjectSchema),
  claims: z.lazy(() => ClaimCreateNestedManyWithoutNpiProviderInputObjectSchema).optional(),
  commissionBatches: z.lazy(() => CommissionBatchCreateNestedManyWithoutNpiProviderInputObjectSchema).optional(),
  appointmentProcedures: z.lazy(() => AppointmentProcedureCreateNestedManyWithoutNpiProviderInputObjectSchema).optional()
}).strict();
export const NpiProviderCreateWithoutPaymentsInputObjectSchema: z.ZodType<Prisma.NpiProviderCreateWithoutPaymentsInput> = makeSchema() as unknown as z.ZodType<Prisma.NpiProviderCreateWithoutPaymentsInput>;
export const NpiProviderCreateWithoutPaymentsInputObjectZodSchema = makeSchema();
