import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { OfficeHoursIncludeObjectSchema as OfficeHoursIncludeObjectSchema } from './objects/OfficeHoursInclude.schema';
import { OfficeHoursOrderByWithRelationInputObjectSchema as OfficeHoursOrderByWithRelationInputObjectSchema } from './objects/OfficeHoursOrderByWithRelationInput.schema';
import { OfficeHoursWhereInputObjectSchema as OfficeHoursWhereInputObjectSchema } from './objects/OfficeHoursWhereInput.schema';
import { OfficeHoursWhereUniqueInputObjectSchema as OfficeHoursWhereUniqueInputObjectSchema } from './objects/OfficeHoursWhereUniqueInput.schema';
import { OfficeHoursScalarFieldEnumSchema } from './enums/OfficeHoursScalarFieldEnum.schema';

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

export const OfficeHoursFindFirstOrThrowSelectSchema: z.ZodType<Prisma.OfficeHoursSelect> = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    data: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.OfficeHoursSelect>;

export const OfficeHoursFindFirstOrThrowSelectZodSchema = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    data: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict();

export const OfficeHoursFindFirstOrThrowSchema: z.ZodType<Prisma.OfficeHoursFindFirstOrThrowArgs> = z.object({ select: OfficeHoursFindFirstOrThrowSelectSchema.optional(), include: z.lazy(() => OfficeHoursIncludeObjectSchema.optional()), orderBy: z.union([OfficeHoursOrderByWithRelationInputObjectSchema, OfficeHoursOrderByWithRelationInputObjectSchema.array()]).optional(), where: OfficeHoursWhereInputObjectSchema.optional(), cursor: OfficeHoursWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([OfficeHoursScalarFieldEnumSchema, OfficeHoursScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.OfficeHoursFindFirstOrThrowArgs>;

export const OfficeHoursFindFirstOrThrowZodSchema = z.object({ select: OfficeHoursFindFirstOrThrowSelectSchema.optional(), include: z.lazy(() => OfficeHoursIncludeObjectSchema.optional()), orderBy: z.union([OfficeHoursOrderByWithRelationInputObjectSchema, OfficeHoursOrderByWithRelationInputObjectSchema.array()]).optional(), where: OfficeHoursWhereInputObjectSchema.optional(), cursor: OfficeHoursWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([OfficeHoursScalarFieldEnumSchema, OfficeHoursScalarFieldEnumSchema.array()]).optional() }).strict();