import type { ZodSchema } from 'zod' import type { Request, Response, NextFunction, RequestHandler } from 'express' export const validate = (schema: ZodSchema): RequestHandler => (req: Request, res: Response, next: NextFunction): void => { const result = schema.safeParse(req.body) if (!result.success) { const issues = result.error.issues ?? [] res.status(400).json({ error: issues[0]?.message ?? 'Validation failed', details: issues, }) return } req.body = result.data next() }