import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { MissingTeethStatusSchema } from '../enums/MissingTeethStatus.schema';
import { NestedEnumMissingTeethStatusWithAggregatesFilterObjectSchema as NestedEnumMissingTeethStatusWithAggregatesFilterObjectSchema } from './NestedEnumMissingTeethStatusWithAggregatesFilter.schema';
import { NestedIntFilterObjectSchema as NestedIntFilterObjectSchema } from './NestedIntFilter.schema';
import { NestedEnumMissingTeethStatusFilterObjectSchema as NestedEnumMissingTeethStatusFilterObjectSchema } from './NestedEnumMissingTeethStatusFilter.schema'

const makeSchema = () => z.object({
  equals: MissingTeethStatusSchema.optional(),
  in: MissingTeethStatusSchema.array().optional(),
  notIn: MissingTeethStatusSchema.array().optional(),
  not: z.union([MissingTeethStatusSchema, z.lazy(() => NestedEnumMissingTeethStatusWithAggregatesFilterObjectSchema)]).optional(),
  _count: z.lazy(() => NestedIntFilterObjectSchema).optional(),
  _min: z.lazy(() => NestedEnumMissingTeethStatusFilterObjectSchema).optional(),
  _max: z.lazy(() => NestedEnumMissingTeethStatusFilterObjectSchema).optional()
}).strict();
export const EnumMissingTeethStatusWithAggregatesFilterObjectSchema: z.ZodType<Prisma.EnumMissingTeethStatusWithAggregatesFilter> = makeSchema() as unknown as z.ZodType<Prisma.EnumMissingTeethStatusWithAggregatesFilter>;
export const EnumMissingTeethStatusWithAggregatesFilterObjectZodSchema = makeSchema();
