import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { ClaimStatusSchema } from '../enums/ClaimStatus.schema';
import { NestedIntFilterObjectSchema as NestedIntFilterObjectSchema } from './NestedIntFilter.schema';
import { NestedEnumClaimStatusFilterObjectSchema as NestedEnumClaimStatusFilterObjectSchema } from './NestedEnumClaimStatusFilter.schema'

const nestedenumclaimstatuswithaggregatesfilterSchema = z.object({
  equals: ClaimStatusSchema.optional(),
  in: ClaimStatusSchema.array().optional(),
  notIn: ClaimStatusSchema.array().optional(),
  not: z.union([ClaimStatusSchema, z.lazy(() => NestedEnumClaimStatusWithAggregatesFilterObjectSchema)]).optional(),
  _count: z.lazy(() => NestedIntFilterObjectSchema).optional(),
  _min: z.lazy(() => NestedEnumClaimStatusFilterObjectSchema).optional(),
  _max: z.lazy(() => NestedEnumClaimStatusFilterObjectSchema).optional()
}).strict();
export const NestedEnumClaimStatusWithAggregatesFilterObjectSchema: z.ZodType<Prisma.NestedEnumClaimStatusWithAggregatesFilter> = nestedenumclaimstatuswithaggregatesfilterSchema as unknown as z.ZodType<Prisma.NestedEnumClaimStatusWithAggregatesFilter>;
export const NestedEnumClaimStatusWithAggregatesFilterObjectZodSchema = nestedenumclaimstatuswithaggregatesfilterSchema;
