import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { PatientConversationWhereInputObjectSchema as PatientConversationWhereInputObjectSchema } from './objects/PatientConversationWhereInput.schema';
import { PatientConversationOrderByWithAggregationInputObjectSchema as PatientConversationOrderByWithAggregationInputObjectSchema } from './objects/PatientConversationOrderByWithAggregationInput.schema';
import { PatientConversationScalarWhereWithAggregatesInputObjectSchema as PatientConversationScalarWhereWithAggregatesInputObjectSchema } from './objects/PatientConversationScalarWhereWithAggregatesInput.schema';
import { PatientConversationScalarFieldEnumSchema } from './enums/PatientConversationScalarFieldEnum.schema';
import { PatientConversationCountAggregateInputObjectSchema as PatientConversationCountAggregateInputObjectSchema } from './objects/PatientConversationCountAggregateInput.schema';
import { PatientConversationMinAggregateInputObjectSchema as PatientConversationMinAggregateInputObjectSchema } from './objects/PatientConversationMinAggregateInput.schema';
import { PatientConversationMaxAggregateInputObjectSchema as PatientConversationMaxAggregateInputObjectSchema } from './objects/PatientConversationMaxAggregateInput.schema';
import { PatientConversationAvgAggregateInputObjectSchema as PatientConversationAvgAggregateInputObjectSchema } from './objects/PatientConversationAvgAggregateInput.schema';
import { PatientConversationSumAggregateInputObjectSchema as PatientConversationSumAggregateInputObjectSchema } from './objects/PatientConversationSumAggregateInput.schema';

export const PatientConversationGroupBySchema: z.ZodType<Prisma.PatientConversationGroupByArgs> = z.object({ where: PatientConversationWhereInputObjectSchema.optional(), orderBy: z.union([PatientConversationOrderByWithAggregationInputObjectSchema, PatientConversationOrderByWithAggregationInputObjectSchema.array()]).optional(), having: PatientConversationScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(PatientConversationScalarFieldEnumSchema), _count: z.union([ z.literal(true), PatientConversationCountAggregateInputObjectSchema ]).optional(), _min: PatientConversationMinAggregateInputObjectSchema.optional(), _max: PatientConversationMaxAggregateInputObjectSchema.optional(), _avg: PatientConversationAvgAggregateInputObjectSchema.optional(), _sum: PatientConversationSumAggregateInputObjectSchema.optional() }).strict() as unknown as z.ZodType<Prisma.PatientConversationGroupByArgs>;

export const PatientConversationGroupByZodSchema = z.object({ where: PatientConversationWhereInputObjectSchema.optional(), orderBy: z.union([PatientConversationOrderByWithAggregationInputObjectSchema, PatientConversationOrderByWithAggregationInputObjectSchema.array()]).optional(), having: PatientConversationScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(PatientConversationScalarFieldEnumSchema), _count: z.union([ z.literal(true), PatientConversationCountAggregateInputObjectSchema ]).optional(), _min: PatientConversationMinAggregateInputObjectSchema.optional(), _max: PatientConversationMaxAggregateInputObjectSchema.optional(), _avg: PatientConversationAvgAggregateInputObjectSchema.optional(), _sum: PatientConversationSumAggregateInputObjectSchema.optional() }).strict();