import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { LabRxTemplateIncludeObjectSchema as LabRxTemplateIncludeObjectSchema } from './objects/LabRxTemplateInclude.schema';
import { LabRxTemplateOrderByWithRelationInputObjectSchema as LabRxTemplateOrderByWithRelationInputObjectSchema } from './objects/LabRxTemplateOrderByWithRelationInput.schema';
import { LabRxTemplateWhereInputObjectSchema as LabRxTemplateWhereInputObjectSchema } from './objects/LabRxTemplateWhereInput.schema';
import { LabRxTemplateWhereUniqueInputObjectSchema as LabRxTemplateWhereUniqueInputObjectSchema } from './objects/LabRxTemplateWhereUniqueInput.schema';
import { LabRxTemplateScalarFieldEnumSchema } from './enums/LabRxTemplateScalarFieldEnum.schema';

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

export const LabRxTemplateFindManySelectSchema: z.ZodType<Prisma.LabRxTemplateSelect> = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    name: z.boolean().optional(),
    labName: z.boolean().optional(),
    labPhone: z.boolean().optional(),
    labFax: z.boolean().optional(),
    labAddress: z.boolean().optional(),
    labAccount: z.boolean().optional(),
    caseType: z.boolean().optional(),
    material: z.boolean().optional(),
    instructions: z.boolean().optional(),
    sortOrder: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    updatedAt: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.LabRxTemplateSelect>;

export const LabRxTemplateFindManySelectZodSchema = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    name: z.boolean().optional(),
    labName: z.boolean().optional(),
    labPhone: z.boolean().optional(),
    labFax: z.boolean().optional(),
    labAddress: z.boolean().optional(),
    labAccount: z.boolean().optional(),
    caseType: z.boolean().optional(),
    material: z.boolean().optional(),
    instructions: z.boolean().optional(),
    sortOrder: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    updatedAt: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict();

export const LabRxTemplateFindManySchema: z.ZodType<Prisma.LabRxTemplateFindManyArgs> = z.object({ select: LabRxTemplateFindManySelectSchema.optional(), include: z.lazy(() => LabRxTemplateIncludeObjectSchema.optional()), orderBy: z.union([LabRxTemplateOrderByWithRelationInputObjectSchema, LabRxTemplateOrderByWithRelationInputObjectSchema.array()]).optional(), where: LabRxTemplateWhereInputObjectSchema.optional(), cursor: LabRxTemplateWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([LabRxTemplateScalarFieldEnumSchema, LabRxTemplateScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.LabRxTemplateFindManyArgs>;

export const LabRxTemplateFindManyZodSchema = z.object({ select: LabRxTemplateFindManySelectSchema.optional(), include: z.lazy(() => LabRxTemplateIncludeObjectSchema.optional()), orderBy: z.union([LabRxTemplateOrderByWithRelationInputObjectSchema, LabRxTemplateOrderByWithRelationInputObjectSchema.array()]).optional(), where: LabRxTemplateWhereInputObjectSchema.optional(), cursor: LabRxTemplateWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([LabRxTemplateScalarFieldEnumSchema, LabRxTemplateScalarFieldEnumSchema.array()]).optional() }).strict();