import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { CloudFolderArgsObjectSchema as CloudFolderArgsObjectSchema } from './CloudFolderArgs.schema';
import { CloudFolderFindManySchema as CloudFolderFindManySchema } from '../findManyCloudFolder.schema';
import { UserArgsObjectSchema as UserArgsObjectSchema } from './UserArgs.schema';
import { PatientArgsObjectSchema as PatientArgsObjectSchema } from './PatientArgs.schema';
import { CloudFileFindManySchema as CloudFileFindManySchema } from '../findManyCloudFile.schema';
import { CloudFolderCountOutputTypeArgsObjectSchema as CloudFolderCountOutputTypeArgsObjectSchema } from './CloudFolderCountOutputTypeArgs.schema'

const makeSchema = () => z.object({
  parent: z.union([z.boolean(), z.lazy(() => CloudFolderArgsObjectSchema)]).optional(),
  children: z.union([z.boolean(), z.lazy(() => CloudFolderFindManySchema)]).optional(),
  user: z.union([z.boolean(), z.lazy(() => UserArgsObjectSchema)]).optional(),
  patient: z.union([z.boolean(), z.lazy(() => PatientArgsObjectSchema)]).optional(),
  files: z.union([z.boolean(), z.lazy(() => CloudFileFindManySchema)]).optional(),
  _count: z.union([z.boolean(), z.lazy(() => CloudFolderCountOutputTypeArgsObjectSchema)]).optional()
}).strict();
export const CloudFolderIncludeObjectSchema: z.ZodType<Prisma.CloudFolderInclude> = makeSchema() as unknown as z.ZodType<Prisma.CloudFolderInclude>;
export const CloudFolderIncludeObjectZodSchema = makeSchema();
