import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { PdfFileIncludeObjectSchema as PdfFileIncludeObjectSchema } from './objects/PdfFileInclude.schema';
import { PdfFileOrderByWithRelationInputObjectSchema as PdfFileOrderByWithRelationInputObjectSchema } from './objects/PdfFileOrderByWithRelationInput.schema';
import { PdfFileWhereInputObjectSchema as PdfFileWhereInputObjectSchema } from './objects/PdfFileWhereInput.schema';
import { PdfFileWhereUniqueInputObjectSchema as PdfFileWhereUniqueInputObjectSchema } from './objects/PdfFileWhereUniqueInput.schema';
import { PdfFileScalarFieldEnumSchema } from './enums/PdfFileScalarFieldEnum.schema';

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

export const PdfFileFindFirstOrThrowSelectSchema: z.ZodType<Prisma.PdfFileSelect> = z.object({
    id: z.boolean().optional(),
    filename: z.boolean().optional(),
    pdfData: z.boolean().optional(),
    uploadedAt: z.boolean().optional(),
    groupId: z.boolean().optional(),
    group: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.PdfFileSelect>;

export const PdfFileFindFirstOrThrowSelectZodSchema = z.object({
    id: z.boolean().optional(),
    filename: z.boolean().optional(),
    pdfData: z.boolean().optional(),
    uploadedAt: z.boolean().optional(),
    groupId: z.boolean().optional(),
    group: z.boolean().optional()
  }).strict();

export const PdfFileFindFirstOrThrowSchema: z.ZodType<Prisma.PdfFileFindFirstOrThrowArgs> = z.object({ select: PdfFileFindFirstOrThrowSelectSchema.optional(), include: z.lazy(() => PdfFileIncludeObjectSchema.optional()), orderBy: z.union([PdfFileOrderByWithRelationInputObjectSchema, PdfFileOrderByWithRelationInputObjectSchema.array()]).optional(), where: PdfFileWhereInputObjectSchema.optional(), cursor: PdfFileWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([PdfFileScalarFieldEnumSchema, PdfFileScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.PdfFileFindFirstOrThrowArgs>;

export const PdfFileFindFirstOrThrowZodSchema = z.object({ select: PdfFileFindFirstOrThrowSelectSchema.optional(), include: z.lazy(() => PdfFileIncludeObjectSchema.optional()), orderBy: z.union([PdfFileOrderByWithRelationInputObjectSchema, PdfFileOrderByWithRelationInputObjectSchema.array()]).optional(), where: PdfFileWhereInputObjectSchema.optional(), cursor: PdfFileWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([PdfFileScalarFieldEnumSchema, PdfFileScalarFieldEnumSchema.array()]).optional() }).strict();