import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { CloudFolderWhereInputObjectSchema as CloudFolderWhereInputObjectSchema } from './objects/CloudFolderWhereInput.schema';
import { CloudFolderOrderByWithAggregationInputObjectSchema as CloudFolderOrderByWithAggregationInputObjectSchema } from './objects/CloudFolderOrderByWithAggregationInput.schema';
import { CloudFolderScalarWhereWithAggregatesInputObjectSchema as CloudFolderScalarWhereWithAggregatesInputObjectSchema } from './objects/CloudFolderScalarWhereWithAggregatesInput.schema';
import { CloudFolderScalarFieldEnumSchema } from './enums/CloudFolderScalarFieldEnum.schema';
import { CloudFolderCountAggregateInputObjectSchema as CloudFolderCountAggregateInputObjectSchema } from './objects/CloudFolderCountAggregateInput.schema';
import { CloudFolderMinAggregateInputObjectSchema as CloudFolderMinAggregateInputObjectSchema } from './objects/CloudFolderMinAggregateInput.schema';
import { CloudFolderMaxAggregateInputObjectSchema as CloudFolderMaxAggregateInputObjectSchema } from './objects/CloudFolderMaxAggregateInput.schema';
import { CloudFolderAvgAggregateInputObjectSchema as CloudFolderAvgAggregateInputObjectSchema } from './objects/CloudFolderAvgAggregateInput.schema';
import { CloudFolderSumAggregateInputObjectSchema as CloudFolderSumAggregateInputObjectSchema } from './objects/CloudFolderSumAggregateInput.schema';

export const CloudFolderGroupBySchema: z.ZodType<Prisma.CloudFolderGroupByArgs> = z.object({ where: CloudFolderWhereInputObjectSchema.optional(), orderBy: z.union([CloudFolderOrderByWithAggregationInputObjectSchema, CloudFolderOrderByWithAggregationInputObjectSchema.array()]).optional(), having: CloudFolderScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(CloudFolderScalarFieldEnumSchema), _count: z.union([ z.literal(true), CloudFolderCountAggregateInputObjectSchema ]).optional(), _min: CloudFolderMinAggregateInputObjectSchema.optional(), _max: CloudFolderMaxAggregateInputObjectSchema.optional(), _avg: CloudFolderAvgAggregateInputObjectSchema.optional(), _sum: CloudFolderSumAggregateInputObjectSchema.optional() }).strict() as unknown as z.ZodType<Prisma.CloudFolderGroupByArgs>;

export const CloudFolderGroupByZodSchema = z.object({ where: CloudFolderWhereInputObjectSchema.optional(), orderBy: z.union([CloudFolderOrderByWithAggregationInputObjectSchema, CloudFolderOrderByWithAggregationInputObjectSchema.array()]).optional(), having: CloudFolderScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(CloudFolderScalarFieldEnumSchema), _count: z.union([ z.literal(true), CloudFolderCountAggregateInputObjectSchema ]).optional(), _min: CloudFolderMinAggregateInputObjectSchema.optional(), _max: CloudFolderMaxAggregateInputObjectSchema.optional(), _avg: CloudFolderAvgAggregateInputObjectSchema.optional(), _sum: CloudFolderSumAggregateInputObjectSchema.optional() }).strict();