import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { SortOrderSchema } from '../enums/SortOrder.schema';
import { SortOrderInputObjectSchema as SortOrderInputObjectSchema } from './SortOrderInput.schema';
import { CloudFolderCountOrderByAggregateInputObjectSchema as CloudFolderCountOrderByAggregateInputObjectSchema } from './CloudFolderCountOrderByAggregateInput.schema';
import { CloudFolderAvgOrderByAggregateInputObjectSchema as CloudFolderAvgOrderByAggregateInputObjectSchema } from './CloudFolderAvgOrderByAggregateInput.schema';
import { CloudFolderMaxOrderByAggregateInputObjectSchema as CloudFolderMaxOrderByAggregateInputObjectSchema } from './CloudFolderMaxOrderByAggregateInput.schema';
import { CloudFolderMinOrderByAggregateInputObjectSchema as CloudFolderMinOrderByAggregateInputObjectSchema } from './CloudFolderMinOrderByAggregateInput.schema';
import { CloudFolderSumOrderByAggregateInputObjectSchema as CloudFolderSumOrderByAggregateInputObjectSchema } from './CloudFolderSumOrderByAggregateInput.schema'

const makeSchema = () => z.object({
  id: SortOrderSchema.optional(),
  userId: SortOrderSchema.optional(),
  name: SortOrderSchema.optional(),
  parentId: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  patientId: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  createdAt: SortOrderSchema.optional(),
  updatedAt: SortOrderSchema.optional(),
  _count: z.lazy(() => CloudFolderCountOrderByAggregateInputObjectSchema).optional(),
  _avg: z.lazy(() => CloudFolderAvgOrderByAggregateInputObjectSchema).optional(),
  _max: z.lazy(() => CloudFolderMaxOrderByAggregateInputObjectSchema).optional(),
  _min: z.lazy(() => CloudFolderMinOrderByAggregateInputObjectSchema).optional(),
  _sum: z.lazy(() => CloudFolderSumOrderByAggregateInputObjectSchema).optional()
}).strict();
export const CloudFolderOrderByWithAggregationInputObjectSchema: z.ZodType<Prisma.CloudFolderOrderByWithAggregationInput> = makeSchema() as unknown as z.ZodType<Prisma.CloudFolderOrderByWithAggregationInput>;
export const CloudFolderOrderByWithAggregationInputObjectZodSchema = makeSchema();
