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 { CommissionBatchCreateNestedManyWithoutNpiProviderInputObjectSchema as CommissionBatchCreateNestedManyWithoutNpiProviderInputObjectSchema } from './CommissionBatchCreateNestedManyWithoutNpiProviderInput.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(),
  commissionBatches: z.lazy(() => CommissionBatchCreateNestedManyWithoutNpiProviderInputObjectSchema).optional()
}).strict();
export const NpiProviderCreateWithoutAppointmentProceduresInputObjectSchema: z.ZodType<Prisma.NpiProviderCreateWithoutAppointmentProceduresInput> = makeSchema() as unknown as z.ZodType<Prisma.NpiProviderCreateWithoutAppointmentProceduresInput>;
export const NpiProviderCreateWithoutAppointmentProceduresInputObjectZodSchema = makeSchema();
