import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { IntFilterObjectSchema as IntFilterObjectSchema } from './IntFilter.schema';
import { StringFilterObjectSchema as StringFilterObjectSchema } from './StringFilter.schema';
import { StringNullableFilterObjectSchema as StringNullableFilterObjectSchema } from './StringNullableFilter.schema';
import { DateTimeFilterObjectSchema as DateTimeFilterObjectSchema } from './DateTimeFilter.schema';
import { UserNullableScalarRelationFilterObjectSchema as UserNullableScalarRelationFilterObjectSchema } from './UserNullableScalarRelationFilter.schema';
import { UserWhereInputObjectSchema as UserWhereInputObjectSchema } from './UserWhereInput.schema';
import { AppointmentListRelationFilterObjectSchema as AppointmentListRelationFilterObjectSchema } from './AppointmentListRelationFilter.schema';
import { ClaimListRelationFilterObjectSchema as ClaimListRelationFilterObjectSchema } from './ClaimListRelationFilter.schema'

const staffwhereinputSchema = z.object({
  AND: z.union([z.lazy(() => StaffWhereInputObjectSchema), z.lazy(() => StaffWhereInputObjectSchema).array()]).optional(),
  OR: z.lazy(() => StaffWhereInputObjectSchema).array().optional(),
  NOT: z.union([z.lazy(() => StaffWhereInputObjectSchema), z.lazy(() => StaffWhereInputObjectSchema).array()]).optional(),
  id: z.union([z.lazy(() => IntFilterObjectSchema), z.number().int()]).optional(),
  userId: z.union([z.lazy(() => IntFilterObjectSchema), z.number().int()]).optional(),
  name: z.union([z.lazy(() => StringFilterObjectSchema), z.string()]).optional(),
  email: z.union([z.lazy(() => StringNullableFilterObjectSchema), z.string()]).optional().nullable(),
  role: z.union([z.lazy(() => StringFilterObjectSchema), z.string()]).optional(),
  phone: z.union([z.lazy(() => StringNullableFilterObjectSchema), z.string()]).optional().nullable(),
  createdAt: z.union([z.lazy(() => DateTimeFilterObjectSchema), z.coerce.date()]).optional(),
  user: z.union([z.lazy(() => UserNullableScalarRelationFilterObjectSchema), z.lazy(() => UserWhereInputObjectSchema)]).optional(),
  appointments: z.lazy(() => AppointmentListRelationFilterObjectSchema).optional(),
  claims: z.lazy(() => ClaimListRelationFilterObjectSchema).optional()
}).strict();
export const StaffWhereInputObjectSchema: z.ZodType<Prisma.StaffWhereInput> = staffwhereinputSchema as unknown as z.ZodType<Prisma.StaffWhereInput>;
export const StaffWhereInputObjectZodSchema = staffwhereinputSchema;
