import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { TwilioSettingsIncludeObjectSchema as TwilioSettingsIncludeObjectSchema } from './objects/TwilioSettingsInclude.schema';
import { TwilioSettingsOrderByWithRelationInputObjectSchema as TwilioSettingsOrderByWithRelationInputObjectSchema } from './objects/TwilioSettingsOrderByWithRelationInput.schema';
import { TwilioSettingsWhereInputObjectSchema as TwilioSettingsWhereInputObjectSchema } from './objects/TwilioSettingsWhereInput.schema';
import { TwilioSettingsWhereUniqueInputObjectSchema as TwilioSettingsWhereUniqueInputObjectSchema } from './objects/TwilioSettingsWhereUniqueInput.schema';
import { TwilioSettingsScalarFieldEnumSchema } from './enums/TwilioSettingsScalarFieldEnum.schema';

// Select schema needs to be in file to prevent circular imports
//------------------------------------------------------

export const TwilioSettingsFindManySelectSchema: z.ZodType<Prisma.TwilioSettingsSelect> = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    accountSid: z.boolean().optional(),
    authToken: z.boolean().optional(),
    phoneNumber: z.boolean().optional(),
    greetingMessage: z.boolean().optional(),
    templates: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.TwilioSettingsSelect>;

export const TwilioSettingsFindManySelectZodSchema = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    accountSid: z.boolean().optional(),
    authToken: z.boolean().optional(),
    phoneNumber: z.boolean().optional(),
    greetingMessage: z.boolean().optional(),
    templates: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict();

export const TwilioSettingsFindManySchema: z.ZodType<Prisma.TwilioSettingsFindManyArgs> = z.object({ select: TwilioSettingsFindManySelectSchema.optional(), include: z.lazy(() => TwilioSettingsIncludeObjectSchema.optional()), orderBy: z.union([TwilioSettingsOrderByWithRelationInputObjectSchema, TwilioSettingsOrderByWithRelationInputObjectSchema.array()]).optional(), where: TwilioSettingsWhereInputObjectSchema.optional(), cursor: TwilioSettingsWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([TwilioSettingsScalarFieldEnumSchema, TwilioSettingsScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.TwilioSettingsFindManyArgs>;

export const TwilioSettingsFindManyZodSchema = z.object({ select: TwilioSettingsFindManySelectSchema.optional(), include: z.lazy(() => TwilioSettingsIncludeObjectSchema.optional()), orderBy: z.union([TwilioSettingsOrderByWithRelationInputObjectSchema, TwilioSettingsOrderByWithRelationInputObjectSchema.array()]).optional(), where: TwilioSettingsWhereInputObjectSchema.optional(), cursor: TwilioSettingsWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([TwilioSettingsScalarFieldEnumSchema, TwilioSettingsScalarFieldEnumSchema.array()]).optional() }).strict();