import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { CloudFileWhereInputObjectSchema as CloudFileWhereInputObjectSchema } from './objects/CloudFileWhereInput.schema';
import { CloudFileOrderByWithAggregationInputObjectSchema as CloudFileOrderByWithAggregationInputObjectSchema } from './objects/CloudFileOrderByWithAggregationInput.schema';
import { CloudFileScalarWhereWithAggregatesInputObjectSchema as CloudFileScalarWhereWithAggregatesInputObjectSchema } from './objects/CloudFileScalarWhereWithAggregatesInput.schema';
import { CloudFileScalarFieldEnumSchema } from './enums/CloudFileScalarFieldEnum.schema';
import { CloudFileCountAggregateInputObjectSchema as CloudFileCountAggregateInputObjectSchema } from './objects/CloudFileCountAggregateInput.schema';
import { CloudFileMinAggregateInputObjectSchema as CloudFileMinAggregateInputObjectSchema } from './objects/CloudFileMinAggregateInput.schema';
import { CloudFileMaxAggregateInputObjectSchema as CloudFileMaxAggregateInputObjectSchema } from './objects/CloudFileMaxAggregateInput.schema';
import { CloudFileAvgAggregateInputObjectSchema as CloudFileAvgAggregateInputObjectSchema } from './objects/CloudFileAvgAggregateInput.schema';
import { CloudFileSumAggregateInputObjectSchema as CloudFileSumAggregateInputObjectSchema } from './objects/CloudFileSumAggregateInput.schema';

export const CloudFileGroupBySchema: z.ZodType<Prisma.CloudFileGroupByArgs> = z.object({ where: CloudFileWhereInputObjectSchema.optional(), orderBy: z.union([CloudFileOrderByWithAggregationInputObjectSchema, CloudFileOrderByWithAggregationInputObjectSchema.array()]).optional(), having: CloudFileScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(CloudFileScalarFieldEnumSchema), _count: z.union([ z.literal(true), CloudFileCountAggregateInputObjectSchema ]).optional(), _min: CloudFileMinAggregateInputObjectSchema.optional(), _max: CloudFileMaxAggregateInputObjectSchema.optional(), _avg: CloudFileAvgAggregateInputObjectSchema.optional(), _sum: CloudFileSumAggregateInputObjectSchema.optional() }).strict() as unknown as z.ZodType<Prisma.CloudFileGroupByArgs>;

export const CloudFileGroupByZodSchema = z.object({ where: CloudFileWhereInputObjectSchema.optional(), orderBy: z.union([CloudFileOrderByWithAggregationInputObjectSchema, CloudFileOrderByWithAggregationInputObjectSchema.array()]).optional(), having: CloudFileScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(CloudFileScalarFieldEnumSchema), _count: z.union([ z.literal(true), CloudFileCountAggregateInputObjectSchema ]).optional(), _min: CloudFileMinAggregateInputObjectSchema.optional(), _max: CloudFileMaxAggregateInputObjectSchema.optional(), _avg: CloudFileAvgAggregateInputObjectSchema.optional(), _sum: CloudFileSumAggregateInputObjectSchema.optional() }).strict();