import { z } from 'zod'; export const createRentalSchema = z.object({ title: z.string().min(3).max(100), description: z.string().min(10).max(5000), category: z.enum(['APARTMENT', 'HOUSE', 'CAR', 'MOTORCYCLE', 'BICYCLE', 'EBIKE']), location: z.string().min(1).max(200), dailyPrice: z.number().positive().optional(), monthlyPrice: z.number().positive().optional(), depositAmount: z.number().min(0).optional(), details: z.record(z.any()).optional(), amenities: z.array(z.string()).optional(), rules: z.array(z.string()).optional(), cancellationPolicy: z.enum(['FLEXIBLE', 'MODERATE', 'STRICT']).optional(), minDays: z.number().int().positive().optional(), maxDays: z.number().int().positive().optional(), minMonths: z.number().int().positive().optional(), maxMonths: z.number().int().positive().optional(), }).refine(data => data.dailyPrice || data.monthlyPrice, { message: 'At least one price (daily or monthly) is required', }); export const updateRentalSchema = z.object({ title: z.string().min(3).max(100).optional(), description: z.string().min(10).max(5000).optional(), category: z.enum(['APARTMENT', 'HOUSE', 'CAR', 'MOTORCYCLE', 'BICYCLE', 'EBIKE']).optional(), location: z.string().min(1).max(200).optional(), dailyPrice: z.number().positive().nullable().optional(), monthlyPrice: z.number().positive().nullable().optional(), depositAmount: z.number().min(0).nullable().optional(), details: z.record(z.any()).optional(), amenities: z.array(z.string()).optional(), rules: z.array(z.string()).optional(), cancellationPolicy: z.enum(['FLEXIBLE', 'MODERATE', 'STRICT']).optional(), minDays: z.number().int().positive().nullable().optional(), maxDays: z.number().int().positive().nullable().optional(), minMonths: z.number().int().positive().nullable().optional(), maxMonths: z.number().int().positive().nullable().optional(), });