import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { PdfTitleKeySchema } from '../enums/PdfTitleKey.schema';
import { NestedEnumPdfTitleKeyWithAggregatesFilterObjectSchema as NestedEnumPdfTitleKeyWithAggregatesFilterObjectSchema } from './NestedEnumPdfTitleKeyWithAggregatesFilter.schema';
import { NestedIntFilterObjectSchema as NestedIntFilterObjectSchema } from './NestedIntFilter.schema';
import { NestedEnumPdfTitleKeyFilterObjectSchema as NestedEnumPdfTitleKeyFilterObjectSchema } from './NestedEnumPdfTitleKeyFilter.schema'

const makeSchema = () => z.object({
  equals: PdfTitleKeySchema.optional(),
  in: PdfTitleKeySchema.array().optional(),
  notIn: PdfTitleKeySchema.array().optional(),
  not: z.union([PdfTitleKeySchema, z.lazy(() => NestedEnumPdfTitleKeyWithAggregatesFilterObjectSchema)]).optional(),
  _count: z.lazy(() => NestedIntFilterObjectSchema).optional(),
  _min: z.lazy(() => NestedEnumPdfTitleKeyFilterObjectSchema).optional(),
  _max: z.lazy(() => NestedEnumPdfTitleKeyFilterObjectSchema).optional()
}).strict();
export const EnumPdfTitleKeyWithAggregatesFilterObjectSchema: z.ZodType<Prisma.EnumPdfTitleKeyWithAggregatesFilter> = makeSchema() as unknown as z.ZodType<Prisma.EnumPdfTitleKeyWithAggregatesFilter>;
export const EnumPdfTitleKeyWithAggregatesFilterObjectZodSchema = makeSchema();
