import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { CloudFileChunkWhereInputObjectSchema as CloudFileChunkWhereInputObjectSchema } from './objects/CloudFileChunkWhereInput.schema';
import { CloudFileChunkOrderByWithAggregationInputObjectSchema as CloudFileChunkOrderByWithAggregationInputObjectSchema } from './objects/CloudFileChunkOrderByWithAggregationInput.schema';
import { CloudFileChunkScalarWhereWithAggregatesInputObjectSchema as CloudFileChunkScalarWhereWithAggregatesInputObjectSchema } from './objects/CloudFileChunkScalarWhereWithAggregatesInput.schema';
import { CloudFileChunkScalarFieldEnumSchema } from './enums/CloudFileChunkScalarFieldEnum.schema';
import { CloudFileChunkCountAggregateInputObjectSchema as CloudFileChunkCountAggregateInputObjectSchema } from './objects/CloudFileChunkCountAggregateInput.schema';
import { CloudFileChunkMinAggregateInputObjectSchema as CloudFileChunkMinAggregateInputObjectSchema } from './objects/CloudFileChunkMinAggregateInput.schema';
import { CloudFileChunkMaxAggregateInputObjectSchema as CloudFileChunkMaxAggregateInputObjectSchema } from './objects/CloudFileChunkMaxAggregateInput.schema';
import { CloudFileChunkAvgAggregateInputObjectSchema as CloudFileChunkAvgAggregateInputObjectSchema } from './objects/CloudFileChunkAvgAggregateInput.schema';
import { CloudFileChunkSumAggregateInputObjectSchema as CloudFileChunkSumAggregateInputObjectSchema } from './objects/CloudFileChunkSumAggregateInput.schema';

export const CloudFileChunkGroupBySchema: z.ZodType<Prisma.CloudFileChunkGroupByArgs> = z.object({ where: CloudFileChunkWhereInputObjectSchema.optional(), orderBy: z.union([CloudFileChunkOrderByWithAggregationInputObjectSchema, CloudFileChunkOrderByWithAggregationInputObjectSchema.array()]).optional(), having: CloudFileChunkScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(CloudFileChunkScalarFieldEnumSchema), _count: z.union([ z.literal(true), CloudFileChunkCountAggregateInputObjectSchema ]).optional(), _min: CloudFileChunkMinAggregateInputObjectSchema.optional(), _max: CloudFileChunkMaxAggregateInputObjectSchema.optional(), _avg: CloudFileChunkAvgAggregateInputObjectSchema.optional(), _sum: CloudFileChunkSumAggregateInputObjectSchema.optional() }).strict() as unknown as z.ZodType<Prisma.CloudFileChunkGroupByArgs>;

export const CloudFileChunkGroupByZodSchema = z.object({ where: CloudFileChunkWhereInputObjectSchema.optional(), orderBy: z.union([CloudFileChunkOrderByWithAggregationInputObjectSchema, CloudFileChunkOrderByWithAggregationInputObjectSchema.array()]).optional(), having: CloudFileChunkScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(CloudFileChunkScalarFieldEnumSchema), _count: z.union([ z.literal(true), CloudFileChunkCountAggregateInputObjectSchema ]).optional(), _min: CloudFileChunkMinAggregateInputObjectSchema.optional(), _max: CloudFileChunkMaxAggregateInputObjectSchema.optional(), _avg: CloudFileChunkAvgAggregateInputObjectSchema.optional(), _sum: CloudFileChunkSumAggregateInputObjectSchema.optional() }).strict();