import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { IntFilterObjectSchema as IntFilterObjectSchema } from './IntFilter.schema';
import { StringFilterObjectSchema as StringFilterObjectSchema } from './StringFilter.schema';
import { BigIntFilterObjectSchema as BigIntFilterObjectSchema } from './BigIntFilter.schema';
import { DateTimeFilterObjectSchema as DateTimeFilterObjectSchema } from './DateTimeFilter.schema';
import { PatientScalarRelationFilterObjectSchema as PatientScalarRelationFilterObjectSchema } from './PatientScalarRelationFilter.schema';
import { PatientWhereInputObjectSchema as PatientWhereInputObjectSchema } from './PatientWhereInput.schema'

const patientdocumentwhereinputSchema = z.object({
  AND: z.union([z.lazy(() => PatientDocumentWhereInputObjectSchema), z.lazy(() => PatientDocumentWhereInputObjectSchema).array()]).optional(),
  OR: z.lazy(() => PatientDocumentWhereInputObjectSchema).array().optional(),
  NOT: z.union([z.lazy(() => PatientDocumentWhereInputObjectSchema), z.lazy(() => PatientDocumentWhereInputObjectSchema).array()]).optional(),
  id: z.union([z.lazy(() => IntFilterObjectSchema), z.number().int()]).optional(),
  patientId: z.union([z.lazy(() => IntFilterObjectSchema), z.number().int()]).optional(),
  filename: z.union([z.lazy(() => StringFilterObjectSchema), z.string()]).optional(),
  originalName: z.union([z.lazy(() => StringFilterObjectSchema), z.string()]).optional(),
  mimeType: z.union([z.lazy(() => StringFilterObjectSchema), z.string()]).optional(),
  fileSize: z.union([z.lazy(() => BigIntFilterObjectSchema), z.bigint()]).optional(),
  filePath: z.union([z.lazy(() => StringFilterObjectSchema), z.string()]).optional(),
  uploadedAt: z.union([z.lazy(() => DateTimeFilterObjectSchema), z.coerce.date()]).optional(),
  updatedAt: z.union([z.lazy(() => DateTimeFilterObjectSchema), z.coerce.date()]).optional(),
  patient: z.union([z.lazy(() => PatientScalarRelationFilterObjectSchema), z.lazy(() => PatientWhereInputObjectSchema)]).optional()
}).strict();
export const PatientDocumentWhereInputObjectSchema: z.ZodType<Prisma.PatientDocumentWhereInput> = patientdocumentwhereinputSchema as unknown as z.ZodType<Prisma.PatientDocumentWhereInput>;
export const PatientDocumentWhereInputObjectZodSchema = patientdocumentwhereinputSchema;
