import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { BackupDestinationIncludeObjectSchema as BackupDestinationIncludeObjectSchema } from './objects/BackupDestinationInclude.schema';
import { BackupDestinationOrderByWithRelationInputObjectSchema as BackupDestinationOrderByWithRelationInputObjectSchema } from './objects/BackupDestinationOrderByWithRelationInput.schema';
import { BackupDestinationWhereInputObjectSchema as BackupDestinationWhereInputObjectSchema } from './objects/BackupDestinationWhereInput.schema';
import { BackupDestinationWhereUniqueInputObjectSchema as BackupDestinationWhereUniqueInputObjectSchema } from './objects/BackupDestinationWhereUniqueInput.schema';
import { BackupDestinationScalarFieldEnumSchema } from './enums/BackupDestinationScalarFieldEnum.schema';

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

export const BackupDestinationFindManySelectSchema: z.ZodType<Prisma.BackupDestinationSelect> = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    path: z.boolean().optional(),
    isActive: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.BackupDestinationSelect>;

export const BackupDestinationFindManySelectZodSchema = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    path: z.boolean().optional(),
    isActive: z.boolean().optional(),
    createdAt: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict();

export const BackupDestinationFindManySchema: z.ZodType<Prisma.BackupDestinationFindManyArgs> = z.object({ select: BackupDestinationFindManySelectSchema.optional(), include: z.lazy(() => BackupDestinationIncludeObjectSchema.optional()), orderBy: z.union([BackupDestinationOrderByWithRelationInputObjectSchema, BackupDestinationOrderByWithRelationInputObjectSchema.array()]).optional(), where: BackupDestinationWhereInputObjectSchema.optional(), cursor: BackupDestinationWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([BackupDestinationScalarFieldEnumSchema, BackupDestinationScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.BackupDestinationFindManyArgs>;

export const BackupDestinationFindManyZodSchema = z.object({ select: BackupDestinationFindManySelectSchema.optional(), include: z.lazy(() => BackupDestinationIncludeObjectSchema.optional()), orderBy: z.union([BackupDestinationOrderByWithRelationInputObjectSchema, BackupDestinationOrderByWithRelationInputObjectSchema.array()]).optional(), where: BackupDestinationWhereInputObjectSchema.optional(), cursor: BackupDestinationWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([BackupDestinationScalarFieldEnumSchema, BackupDestinationScalarFieldEnumSchema.array()]).optional() }).strict();