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

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