Files
alrahma_sunday_school_api/apps/api/dist/modules/complaints/complaint.schemas.js
T
2026-06-11 03:22:12 -04:00

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