import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { ClaimFileWhereInputObjectSchema as ClaimFileWhereInputObjectSchema } from './objects/ClaimFileWhereInput.schema';
import { ClaimFileOrderByWithAggregationInputObjectSchema as ClaimFileOrderByWithAggregationInputObjectSchema } from './objects/ClaimFileOrderByWithAggregationInput.schema';
import { ClaimFileScalarWhereWithAggregatesInputObjectSchema as ClaimFileScalarWhereWithAggregatesInputObjectSchema } from './objects/ClaimFileScalarWhereWithAggregatesInput.schema';
import { ClaimFileScalarFieldEnumSchema } from './enums/ClaimFileScalarFieldEnum.schema';
import { ClaimFileCountAggregateInputObjectSchema as ClaimFileCountAggregateInputObjectSchema } from './objects/ClaimFileCountAggregateInput.schema';
import { ClaimFileMinAggregateInputObjectSchema as ClaimFileMinAggregateInputObjectSchema } from './objects/ClaimFileMinAggregateInput.schema';
import { ClaimFileMaxAggregateInputObjectSchema as ClaimFileMaxAggregateInputObjectSchema } from './objects/ClaimFileMaxAggregateInput.schema';
import { ClaimFileAvgAggregateInputObjectSchema as ClaimFileAvgAggregateInputObjectSchema } from './objects/ClaimFileAvgAggregateInput.schema';
import { ClaimFileSumAggregateInputObjectSchema as ClaimFileSumAggregateInputObjectSchema } from './objects/ClaimFileSumAggregateInput.schema';

export const ClaimFileGroupBySchema: z.ZodType<Prisma.ClaimFileGroupByArgs> = z.object({ where: ClaimFileWhereInputObjectSchema.optional(), orderBy: z.union([ClaimFileOrderByWithAggregationInputObjectSchema, ClaimFileOrderByWithAggregationInputObjectSchema.array()]).optional(), having: ClaimFileScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(ClaimFileScalarFieldEnumSchema), _count: z.union([ z.literal(true), ClaimFileCountAggregateInputObjectSchema ]).optional(), _min: ClaimFileMinAggregateInputObjectSchema.optional(), _max: ClaimFileMaxAggregateInputObjectSchema.optional(), _avg: ClaimFileAvgAggregateInputObjectSchema.optional(), _sum: ClaimFileSumAggregateInputObjectSchema.optional() }).strict() as unknown as z.ZodType<Prisma.ClaimFileGroupByArgs>;

export const ClaimFileGroupByZodSchema = z.object({ where: ClaimFileWhereInputObjectSchema.optional(), orderBy: z.union([ClaimFileOrderByWithAggregationInputObjectSchema, ClaimFileOrderByWithAggregationInputObjectSchema.array()]).optional(), having: ClaimFileScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(ClaimFileScalarFieldEnumSchema), _count: z.union([ z.literal(true), ClaimFileCountAggregateInputObjectSchema ]).optional(), _min: ClaimFileMinAggregateInputObjectSchema.optional(), _max: ClaimFileMaxAggregateInputObjectSchema.optional(), _avg: ClaimFileAvgAggregateInputObjectSchema.optional(), _sum: ClaimFileSumAggregateInputObjectSchema.optional() }).strict();