"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validate = exports.schemas = void 0; const zod_1 = require("zod"); // Simplified validation schemas - removed unnecessary complexity exports.schemas = { // VIP schemas createVip: zod_1.z.object({ name: zod_1.z.string().min(1).max(100), organization: zod_1.z.string().max(100).optional(), department: zod_1.z.enum(['Office of Development', 'Admin']).default('Office of Development'), transportMode: zod_1.z.enum(['flight', 'self-driving']).default('flight'), flights: zod_1.z.array(zod_1.z.object({ flightNumber: zod_1.z.string(), airline: zod_1.z.string().optional(), scheduledArrival: zod_1.z.string(), scheduledDeparture: zod_1.z.string().optional() })).optional(), expectedArrival: zod_1.z.string().optional(), needsAirportPickup: zod_1.z.boolean().default(true), needsVenueTransport: zod_1.z.boolean().default(true), notes: zod_1.z.string().max(500).optional() }), updateVip: zod_1.z.object({ name: zod_1.z.string().min(1).max(100).optional(), organization: zod_1.z.string().max(100).optional(), department: zod_1.z.enum(['Office of Development', 'Admin']).optional(), transportMode: zod_1.z.enum(['flight', 'self-driving']).optional(), flights: zod_1.z.array(zod_1.z.object({ flightNumber: zod_1.z.string(), airline: zod_1.z.string().optional(), scheduledArrival: zod_1.z.string(), scheduledDeparture: zod_1.z.string().optional() })).optional(), expectedArrival: zod_1.z.string().optional(), needsAirportPickup: zod_1.z.boolean().optional(), needsVenueTransport: zod_1.z.boolean().optional(), notes: zod_1.z.string().max(500).optional() }), // Driver schemas createDriver: zod_1.z.object({ name: zod_1.z.string().min(1).max(100), email: zod_1.z.string().email().optional(), phone: zod_1.z.string(), vehicleInfo: zod_1.z.string().max(200).optional(), status: zod_1.z.enum(['available', 'assigned', 'unavailable']).default('available') }), updateDriver: zod_1.z.object({ name: zod_1.z.string().min(1).max(100).optional(), email: zod_1.z.string().email().optional(), phone: zod_1.z.string().optional(), vehicleInfo: zod_1.z.string().max(200).optional(), status: zod_1.z.enum(['available', 'assigned', 'unavailable']).optional() }), // Schedule schemas createScheduleEvent: zod_1.z.object({ driverId: zod_1.z.string().optional(), eventTime: zod_1.z.string(), eventType: zod_1.z.enum(['pickup', 'dropoff', 'custom']), location: zod_1.z.string().min(1).max(200), notes: zod_1.z.string().max(500).optional() }), updateScheduleEvent: zod_1.z.object({ driverId: zod_1.z.string().optional(), eventTime: zod_1.z.string().optional(), eventType: zod_1.z.enum(['pickup', 'dropoff', 'custom']).optional(), location: zod_1.z.string().min(1).max(200).optional(), notes: zod_1.z.string().max(500).optional(), status: zod_1.z.enum(['scheduled', 'in_progress', 'completed', 'cancelled']).optional() }) }; // Single validation middleware const validate = (schema) => { return async (req, res, next) => { try { req.body = await schema.parseAsync(req.body); next(); } catch (error) { if (error instanceof zod_1.z.ZodError) { const message = error.errors .map(err => `${err.path.join('.')}: ${err.message}`) .join(', '); return res.status(400).json({ error: message }); } next(error); } }; }; exports.validate = validate; //# sourceMappingURL=simpleValidation.js.map