import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { InsuranceCredentialIncludeObjectSchema as InsuranceCredentialIncludeObjectSchema } from './objects/InsuranceCredentialInclude.schema';
import { InsuranceCredentialOrderByWithRelationInputObjectSchema as InsuranceCredentialOrderByWithRelationInputObjectSchema } from './objects/InsuranceCredentialOrderByWithRelationInput.schema';
import { InsuranceCredentialWhereInputObjectSchema as InsuranceCredentialWhereInputObjectSchema } from './objects/InsuranceCredentialWhereInput.schema';
import { InsuranceCredentialWhereUniqueInputObjectSchema as InsuranceCredentialWhereUniqueInputObjectSchema } from './objects/InsuranceCredentialWhereUniqueInput.schema';
import { InsuranceCredentialScalarFieldEnumSchema } from './enums/InsuranceCredentialScalarFieldEnum.schema';

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

export const InsuranceCredentialFindFirstSelectSchema: z.ZodType<Prisma.InsuranceCredentialSelect> = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    siteKey: z.boolean().optional(),
    username: z.boolean().optional(),
    password: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.InsuranceCredentialSelect>;

export const InsuranceCredentialFindFirstSelectZodSchema = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    siteKey: z.boolean().optional(),
    username: z.boolean().optional(),
    password: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict();

export const InsuranceCredentialFindFirstSchema: z.ZodType<Prisma.InsuranceCredentialFindFirstArgs> = z.object({ select: InsuranceCredentialFindFirstSelectSchema.optional(), include: z.lazy(() => InsuranceCredentialIncludeObjectSchema.optional()), orderBy: z.union([InsuranceCredentialOrderByWithRelationInputObjectSchema, InsuranceCredentialOrderByWithRelationInputObjectSchema.array()]).optional(), where: InsuranceCredentialWhereInputObjectSchema.optional(), cursor: InsuranceCredentialWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([InsuranceCredentialScalarFieldEnumSchema, InsuranceCredentialScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.InsuranceCredentialFindFirstArgs>;

export const InsuranceCredentialFindFirstZodSchema = z.object({ select: InsuranceCredentialFindFirstSelectSchema.optional(), include: z.lazy(() => InsuranceCredentialIncludeObjectSchema.optional()), orderBy: z.union([InsuranceCredentialOrderByWithRelationInputObjectSchema, InsuranceCredentialOrderByWithRelationInputObjectSchema.array()]).optional(), where: InsuranceCredentialWhereInputObjectSchema.optional(), cursor: InsuranceCredentialWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([InsuranceCredentialScalarFieldEnumSchema, InsuranceCredentialScalarFieldEnumSchema.array()]).optional() }).strict();