import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { CloudFileChunkIncludeObjectSchema as CloudFileChunkIncludeObjectSchema } from './objects/CloudFileChunkInclude.schema';
import { CloudFileChunkOrderByWithRelationInputObjectSchema as CloudFileChunkOrderByWithRelationInputObjectSchema } from './objects/CloudFileChunkOrderByWithRelationInput.schema';
import { CloudFileChunkWhereInputObjectSchema as CloudFileChunkWhereInputObjectSchema } from './objects/CloudFileChunkWhereInput.schema';
import { CloudFileChunkWhereUniqueInputObjectSchema as CloudFileChunkWhereUniqueInputObjectSchema } from './objects/CloudFileChunkWhereUniqueInput.schema';
import { CloudFileChunkScalarFieldEnumSchema } from './enums/CloudFileChunkScalarFieldEnum.schema';

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

export const CloudFileChunkFindManySelectSchema: z.ZodType<Prisma.CloudFileChunkSelect> = z.object({
    id: z.boolean().optional(),
    fileId: z.boolean().optional(),
    seq: z.boolean().optional(),
    data: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    file: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.CloudFileChunkSelect>;

export const CloudFileChunkFindManySelectZodSchema = z.object({
    id: z.boolean().optional(),
    fileId: z.boolean().optional(),
    seq: z.boolean().optional(),
    data: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    file: z.boolean().optional()
  }).strict();

export const CloudFileChunkFindManySchema: z.ZodType<Prisma.CloudFileChunkFindManyArgs> = z.object({ select: CloudFileChunkFindManySelectSchema.optional(), include: z.lazy(() => CloudFileChunkIncludeObjectSchema.optional()), orderBy: z.union([CloudFileChunkOrderByWithRelationInputObjectSchema, CloudFileChunkOrderByWithRelationInputObjectSchema.array()]).optional(), where: CloudFileChunkWhereInputObjectSchema.optional(), cursor: CloudFileChunkWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([CloudFileChunkScalarFieldEnumSchema, CloudFileChunkScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.CloudFileChunkFindManyArgs>;

export const CloudFileChunkFindManyZodSchema = z.object({ select: CloudFileChunkFindManySelectSchema.optional(), include: z.lazy(() => CloudFileChunkIncludeObjectSchema.optional()), orderBy: z.union([CloudFileChunkOrderByWithRelationInputObjectSchema, CloudFileChunkOrderByWithRelationInputObjectSchema.array()]).optional(), where: CloudFileChunkWhereInputObjectSchema.optional(), cursor: CloudFileChunkWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([CloudFileChunkScalarFieldEnumSchema, CloudFileChunkScalarFieldEnumSchema.array()]).optional() }).strict();