import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { NpiProviderWhereInputObjectSchema as NpiProviderWhereInputObjectSchema } from './objects/NpiProviderWhereInput.schema';
import { NpiProviderOrderByWithAggregationInputObjectSchema as NpiProviderOrderByWithAggregationInputObjectSchema } from './objects/NpiProviderOrderByWithAggregationInput.schema';
import { NpiProviderScalarWhereWithAggregatesInputObjectSchema as NpiProviderScalarWhereWithAggregatesInputObjectSchema } from './objects/NpiProviderScalarWhereWithAggregatesInput.schema';
import { NpiProviderScalarFieldEnumSchema } from './enums/NpiProviderScalarFieldEnum.schema';
import { NpiProviderCountAggregateInputObjectSchema as NpiProviderCountAggregateInputObjectSchema } from './objects/NpiProviderCountAggregateInput.schema';
import { NpiProviderMinAggregateInputObjectSchema as NpiProviderMinAggregateInputObjectSchema } from './objects/NpiProviderMinAggregateInput.schema';
import { NpiProviderMaxAggregateInputObjectSchema as NpiProviderMaxAggregateInputObjectSchema } from './objects/NpiProviderMaxAggregateInput.schema';
import { NpiProviderAvgAggregateInputObjectSchema as NpiProviderAvgAggregateInputObjectSchema } from './objects/NpiProviderAvgAggregateInput.schema';
import { NpiProviderSumAggregateInputObjectSchema as NpiProviderSumAggregateInputObjectSchema } from './objects/NpiProviderSumAggregateInput.schema';

export const NpiProviderGroupBySchema: z.ZodType<Prisma.NpiProviderGroupByArgs> = z.object({ where: NpiProviderWhereInputObjectSchema.optional(), orderBy: z.union([NpiProviderOrderByWithAggregationInputObjectSchema, NpiProviderOrderByWithAggregationInputObjectSchema.array()]).optional(), having: NpiProviderScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(NpiProviderScalarFieldEnumSchema), _count: z.union([ z.literal(true), NpiProviderCountAggregateInputObjectSchema ]).optional(), _min: NpiProviderMinAggregateInputObjectSchema.optional(), _max: NpiProviderMaxAggregateInputObjectSchema.optional(), _avg: NpiProviderAvgAggregateInputObjectSchema.optional(), _sum: NpiProviderSumAggregateInputObjectSchema.optional() }).strict() as unknown as z.ZodType<Prisma.NpiProviderGroupByArgs>;

export const NpiProviderGroupByZodSchema = z.object({ where: NpiProviderWhereInputObjectSchema.optional(), orderBy: z.union([NpiProviderOrderByWithAggregationInputObjectSchema, NpiProviderOrderByWithAggregationInputObjectSchema.array()]).optional(), having: NpiProviderScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(NpiProviderScalarFieldEnumSchema), _count: z.union([ z.literal(true), NpiProviderCountAggregateInputObjectSchema ]).optional(), _min: NpiProviderMinAggregateInputObjectSchema.optional(), _max: NpiProviderMaxAggregateInputObjectSchema.optional(), _avg: NpiProviderAvgAggregateInputObjectSchema.optional(), _sum: NpiProviderSumAggregateInputObjectSchema.optional() }).strict();