import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { ServiceLineStatusSchema } from '../enums/ServiceLineStatus.schema';
import { NestedEnumServiceLineStatusWithAggregatesFilterObjectSchema as NestedEnumServiceLineStatusWithAggregatesFilterObjectSchema } from './NestedEnumServiceLineStatusWithAggregatesFilter.schema';
import { NestedIntFilterObjectSchema as NestedIntFilterObjectSchema } from './NestedIntFilter.schema';
import { NestedEnumServiceLineStatusFilterObjectSchema as NestedEnumServiceLineStatusFilterObjectSchema } from './NestedEnumServiceLineStatusFilter.schema'

const makeSchema = () => z.object({
  equals: ServiceLineStatusSchema.optional(),
  in: ServiceLineStatusSchema.array().optional(),
  notIn: ServiceLineStatusSchema.array().optional(),
  not: z.union([ServiceLineStatusSchema, z.lazy(() => NestedEnumServiceLineStatusWithAggregatesFilterObjectSchema)]).optional(),
  _count: z.lazy(() => NestedIntFilterObjectSchema).optional(),
  _min: z.lazy(() => NestedEnumServiceLineStatusFilterObjectSchema).optional(),
  _max: z.lazy(() => NestedEnumServiceLineStatusFilterObjectSchema).optional()
}).strict();
export const EnumServiceLineStatusWithAggregatesFilterObjectSchema: z.ZodType<Prisma.EnumServiceLineStatusWithAggregatesFilter> = makeSchema() as unknown as z.ZodType<Prisma.EnumServiceLineStatusWithAggregatesFilter>;
export const EnumServiceLineStatusWithAggregatesFilterObjectZodSchema = makeSchema();
