42 lines
1.8 KiB
JavaScript
42 lines
1.8 KiB
JavaScript
"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
|