import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { DatabaseBackupIncludeObjectSchema as DatabaseBackupIncludeObjectSchema } from './objects/DatabaseBackupInclude.schema';
import { DatabaseBackupOrderByWithRelationInputObjectSchema as DatabaseBackupOrderByWithRelationInputObjectSchema } from './objects/DatabaseBackupOrderByWithRelationInput.schema';
import { DatabaseBackupWhereInputObjectSchema as DatabaseBackupWhereInputObjectSchema } from './objects/DatabaseBackupWhereInput.schema';
import { DatabaseBackupWhereUniqueInputObjectSchema as DatabaseBackupWhereUniqueInputObjectSchema } from './objects/DatabaseBackupWhereUniqueInput.schema';
import { DatabaseBackupScalarFieldEnumSchema } from './enums/DatabaseBackupScalarFieldEnum.schema';

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

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

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

export const DatabaseBackupFindManySchema: z.ZodType<Prisma.DatabaseBackupFindManyArgs> = z.object({ select: DatabaseBackupFindManySelectSchema.optional(), include: z.lazy(() => DatabaseBackupIncludeObjectSchema.optional()), orderBy: z.union([DatabaseBackupOrderByWithRelationInputObjectSchema, DatabaseBackupOrderByWithRelationInputObjectSchema.array()]).optional(), where: DatabaseBackupWhereInputObjectSchema.optional(), cursor: DatabaseBackupWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([DatabaseBackupScalarFieldEnumSchema, DatabaseBackupScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.DatabaseBackupFindManyArgs>;

export const DatabaseBackupFindManyZodSchema = z.object({ select: DatabaseBackupFindManySelectSchema.optional(), include: z.lazy(() => DatabaseBackupIncludeObjectSchema.optional()), orderBy: z.union([DatabaseBackupOrderByWithRelationInputObjectSchema, DatabaseBackupOrderByWithRelationInputObjectSchema.array()]).optional(), where: DatabaseBackupWhereInputObjectSchema.optional(), cursor: DatabaseBackupWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([DatabaseBackupScalarFieldEnumSchema, DatabaseBackupScalarFieldEnumSchema.array()]).optional() }).strict();