import type { Request, Response, NextFunction } from 'express' export function requireBody(...fields: string[]) { return (req: Request, res: Response, next: NextFunction): void => { const missing = fields.filter((f) => req.body[f] === undefined || req.body[f] === null) if (missing.length > 0) { res.status(400).json({ error: { code: 'MISSING_FIELDS', message: `Missing required fields: ${missing.join(', ')}` } }); return } next() } } export function sanitizeString(val: unknown): string { if (typeof val !== 'string') return '' return val.trim().slice(0, 10_000) } export function sanitizeInt(val: unknown): number | null { const n = Number(val) if (!Number.isInteger(n) || n < 0) return null return n }