import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { CloudFolderIncludeObjectSchema as CloudFolderIncludeObjectSchema } from './objects/CloudFolderInclude.schema';
import { CloudFolderOrderByWithRelationInputObjectSchema as CloudFolderOrderByWithRelationInputObjectSchema } from './objects/CloudFolderOrderByWithRelationInput.schema';
import { CloudFolderWhereInputObjectSchema as CloudFolderWhereInputObjectSchema } from './objects/CloudFolderWhereInput.schema';
import { CloudFolderWhereUniqueInputObjectSchema as CloudFolderWhereUniqueInputObjectSchema } from './objects/CloudFolderWhereUniqueInput.schema';
import { CloudFolderScalarFieldEnumSchema } from './enums/CloudFolderScalarFieldEnum.schema';

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

export const CloudFolderFindFirstSelectSchema: z.ZodType<Prisma.CloudFolderSelect> = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    name: z.boolean().optional(),
    parentId: z.boolean().optional(),
    patientId: z.boolean().optional(),
    parent: z.boolean().optional(),
    children: z.boolean().optional(),
    user: z.boolean().optional(),
    patient: z.boolean().optional(),
    files: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    updatedAt: z.boolean().optional(),
    _count: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.CloudFolderSelect>;

export const CloudFolderFindFirstSelectZodSchema = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    name: z.boolean().optional(),
    parentId: z.boolean().optional(),
    patientId: z.boolean().optional(),
    parent: z.boolean().optional(),
    children: z.boolean().optional(),
    user: z.boolean().optional(),
    patient: z.boolean().optional(),
    files: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    updatedAt: z.boolean().optional(),
    _count: z.boolean().optional()
  }).strict();

export const CloudFolderFindFirstSchema: z.ZodType<Prisma.CloudFolderFindFirstArgs> = z.object({ select: CloudFolderFindFirstSelectSchema.optional(), include: z.lazy(() => CloudFolderIncludeObjectSchema.optional()), orderBy: z.union([CloudFolderOrderByWithRelationInputObjectSchema, CloudFolderOrderByWithRelationInputObjectSchema.array()]).optional(), where: CloudFolderWhereInputObjectSchema.optional(), cursor: CloudFolderWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([CloudFolderScalarFieldEnumSchema, CloudFolderScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.CloudFolderFindFirstArgs>;

export const CloudFolderFindFirstZodSchema = z.object({ select: CloudFolderFindFirstSelectSchema.optional(), include: z.lazy(() => CloudFolderIncludeObjectSchema.optional()), orderBy: z.union([CloudFolderOrderByWithRelationInputObjectSchema, CloudFolderOrderByWithRelationInputObjectSchema.array()]).optional(), where: CloudFolderWhereInputObjectSchema.optional(), cursor: CloudFolderWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([CloudFolderScalarFieldEnumSchema, CloudFolderScalarFieldEnumSchema.array()]).optional() }).strict();