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 { PaymentCreateNestedManyWithoutNpiProviderInputObjectSchema as PaymentCreateNestedManyWithoutNpiProviderInputObjectSchema } from './PaymentCreateNestedManyWithoutNpiProviderInput.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(),
  payments: z.lazy(() => PaymentCreateNestedManyWithoutNpiProviderInputObjectSchema).optional(),
  appointmentProcedures: z.lazy(() => AppointmentProcedureCreateNestedManyWithoutNpiProviderInputObjectSchema).optional()
}).strict();
export const NpiProviderCreateWithoutCommissionBatchesInputObjectSchema: z.ZodType<Prisma.NpiProviderCreateWithoutCommissionBatchesInput> = makeSchema() as unknown as z.ZodType<Prisma.NpiProviderCreateWithoutCommissionBatchesInput>;
export const NpiProviderCreateWithoutCommissionBatchesInputObjectZodSchema = makeSchema();
