"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.idParamSchema = exports.listQuerySchema = exports.updateSchema = exports.createSchema = void 0; const zod_1 = require("zod"); const CATEGORIES = [ 'BOOKING', 'PICKUP', 'VEHICLE_CLEANLINESS', 'VEHICLE_CONDITION', 'STAFF_SERVICE', 'PRICING', 'DEPOSIT', 'INSURANCE', 'DAMAGE_CLAIM', 'RETURN_PROCESS', 'COMMUNICATION', 'ROADSIDE_ASSISTANCE', 'BILLING', 'OTHER', ]; const SEVERITIES = ['LEVEL_1', 'LEVEL_2', 'LEVEL_3']; const STATUSES = ['OPEN', 'INVESTIGATING', 'RESOLVED', 'CLOSED']; exports.createSchema = zod_1.z.object({ reservationId: zod_1.z.string().optional(), reviewId: zod_1.z.string().optional(), customerId: zod_1.z.string().optional(), severity: zod_1.z.enum(SEVERITIES).default('LEVEL_1'), category: zod_1.z.enum(CATEGORIES), subject: zod_1.z.string().min(1), description: zod_1.z.string().optional(), assignedTo: zod_1.z.string().optional(), }); exports.updateSchema = zod_1.z.object({ status: zod_1.z.enum(STATUSES).optional(), severity: zod_1.z.enum(SEVERITIES).optional(), category: zod_1.z.enum(CATEGORIES).optional(), subject: zod_1.z.string().min(1).optional(), description: zod_1.z.string().optional(), notes: zod_1.z.string().optional(), resolution: zod_1.z.string().optional(), assignedTo: zod_1.z.string().optional(), }); exports.listQuerySchema = zod_1.z.object({ status: zod_1.z.string().optional(), severity: zod_1.z.string().optional(), category: zod_1.z.string().optional(), page: zod_1.z.coerce.number().int().min(1).default(1), pageSize: zod_1.z.coerce.number().int().min(1).max(100).default(20), }); exports.idParamSchema = zod_1.z.object({ id: zod_1.z.string(), }); //# sourceMappingURL=complaint.schemas.js.map