import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { PatientStatusSchema } from '../enums/PatientStatus.schema';
import { NestedIntFilterObjectSchema as NestedIntFilterObjectSchema } from './NestedIntFilter.schema';
import { NestedEnumPatientStatusFilterObjectSchema as NestedEnumPatientStatusFilterObjectSchema } from './NestedEnumPatientStatusFilter.schema'

const nestedenumpatientstatuswithaggregatesfilterSchema = z.object({
  equals: PatientStatusSchema.optional(),
  in: PatientStatusSchema.array().optional(),
  notIn: PatientStatusSchema.array().optional(),
  not: z.union([PatientStatusSchema, z.lazy(() => NestedEnumPatientStatusWithAggregatesFilterObjectSchema)]).optional(),
  _count: z.lazy(() => NestedIntFilterObjectSchema).optional(),
  _min: z.lazy(() => NestedEnumPatientStatusFilterObjectSchema).optional(),
  _max: z.lazy(() => NestedEnumPatientStatusFilterObjectSchema).optional()
}).strict();
export const NestedEnumPatientStatusWithAggregatesFilterObjectSchema: z.ZodType<Prisma.NestedEnumPatientStatusWithAggregatesFilter> = nestedenumpatientstatuswithaggregatesfilterSchema as unknown as z.ZodType<Prisma.NestedEnumPatientStatusWithAggregatesFilter>;
export const NestedEnumPatientStatusWithAggregatesFilterObjectZodSchema = nestedenumpatientstatuswithaggregatesfilterSchema;
