import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { PdfGroupIncludeObjectSchema as PdfGroupIncludeObjectSchema } from './objects/PdfGroupInclude.schema';
import { PdfGroupOrderByWithRelationInputObjectSchema as PdfGroupOrderByWithRelationInputObjectSchema } from './objects/PdfGroupOrderByWithRelationInput.schema';
import { PdfGroupWhereInputObjectSchema as PdfGroupWhereInputObjectSchema } from './objects/PdfGroupWhereInput.schema';
import { PdfGroupWhereUniqueInputObjectSchema as PdfGroupWhereUniqueInputObjectSchema } from './objects/PdfGroupWhereUniqueInput.schema';
import { PdfGroupScalarFieldEnumSchema } from './enums/PdfGroupScalarFieldEnum.schema';

// Select schema needs to be in file to prevent circular imports
//------------------------------------------------------

export const PdfGroupFindFirstSelectSchema: z.ZodType<Prisma.PdfGroupSelect> = z.object({
    id: z.boolean().optional(),
    title: z.boolean().optional(),
    titleKey: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    patientId: z.boolean().optional(),
    patient: z.boolean().optional(),
    pdfs: z.boolean().optional(),
    _count: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.PdfGroupSelect>;

export const PdfGroupFindFirstSelectZodSchema = z.object({
    id: z.boolean().optional(),
    title: z.boolean().optional(),
    titleKey: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    patientId: z.boolean().optional(),
    patient: z.boolean().optional(),
    pdfs: z.boolean().optional(),
    _count: z.boolean().optional()
  }).strict();

export const PdfGroupFindFirstSchema: z.ZodType<Prisma.PdfGroupFindFirstArgs> = z.object({ select: PdfGroupFindFirstSelectSchema.optional(), include: z.lazy(() => PdfGroupIncludeObjectSchema.optional()), orderBy: z.union([PdfGroupOrderByWithRelationInputObjectSchema, PdfGroupOrderByWithRelationInputObjectSchema.array()]).optional(), where: PdfGroupWhereInputObjectSchema.optional(), cursor: PdfGroupWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([PdfGroupScalarFieldEnumSchema, PdfGroupScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.PdfGroupFindFirstArgs>;

export const PdfGroupFindFirstZodSchema = z.object({ select: PdfGroupFindFirstSelectSchema.optional(), include: z.lazy(() => PdfGroupIncludeObjectSchema.optional()), orderBy: z.union([PdfGroupOrderByWithRelationInputObjectSchema, PdfGroupOrderByWithRelationInputObjectSchema.array()]).optional(), where: PdfGroupWhereInputObjectSchema.optional(), cursor: PdfGroupWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([PdfGroupScalarFieldEnumSchema, PdfGroupScalarFieldEnumSchema.array()]).optional() }).strict();