37 lines
1.8 KiB
JavaScript
37 lines
1.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.idParamSchema = exports.flagSchema = exports.approveLicenseSchema = exports.listQuerySchema = exports.customerSchema = exports.paginationSchema = void 0;
|
|
const zod_1 = require("zod");
|
|
exports.paginationSchema = zod_1.z.object({
|
|
page: zod_1.z.coerce.number().int().min(1).max(10000).default(1),
|
|
pageSize: zod_1.z.coerce.number().int().min(1).max(100).default(20),
|
|
});
|
|
exports.customerSchema = zod_1.z.object({
|
|
firstName: zod_1.z.string().min(1).max(100).trim(),
|
|
lastName: zod_1.z.string().min(1).max(100).trim(),
|
|
email: zod_1.z.string().email().max(255).trim().toLowerCase(),
|
|
phone: zod_1.z.string().max(30).trim().optional(),
|
|
driverLicense: zod_1.z.string().max(50).trim().optional(),
|
|
dateOfBirth: zod_1.z.string().datetime().optional(),
|
|
nationality: zod_1.z.string().max(100).trim().optional(),
|
|
address: zod_1.z.record(zod_1.z.unknown()).optional(),
|
|
notes: zod_1.z.string().max(2000).trim().optional(),
|
|
licenseExpiry: zod_1.z.string().datetime().optional(),
|
|
licenseIssuedAt: zod_1.z.string().datetime().optional(),
|
|
licenseCountry: zod_1.z.string().max(100).trim().optional(),
|
|
licenseNumber: zod_1.z.string().max(50).trim().optional(),
|
|
licenseCategory: zod_1.z.string().max(20).trim().optional(),
|
|
});
|
|
exports.listQuerySchema = exports.paginationSchema.extend({
|
|
q: zod_1.z.string().max(100).optional(),
|
|
flagged: zod_1.z.enum(['true', 'false']).optional(),
|
|
});
|
|
exports.approveLicenseSchema = zod_1.z.object({
|
|
decision: zod_1.z.enum(['APPROVE', 'DENY']),
|
|
note: zod_1.z.string().optional(),
|
|
});
|
|
exports.flagSchema = zod_1.z.object({
|
|
reason: zod_1.z.string().optional(),
|
|
});
|
|
exports.idParamSchema = zod_1.z.object({ id: zod_1.z.string() });
|
|
//# sourceMappingURL=customer.schemas.js.map
|