"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