/** * Esquemas Zod para validar inputs del modulo de posiciones. * * Responsabilidades: * - openBody → marketId (string), outcome ('YES'|'NO'), amountEur (positivo, max 100k). * - idParam → coerce a numero entero positivo. * - listQuery → status opcional ('open'|'closed'). * * Consumido por: * - positions.routes.js → validate() en POST, GET y DELETE. */ import { z } from 'zod'; export const openBody = z.object({ marketId: z.string().min(1), outcome: z.enum(['YES', 'NO']), amountEur: z.number().positive().max(100_000), }); export const idParam = z.object({ id: z.coerce.number().int().positive(), }); export const listQuery = z.object({ status: z.enum(['open', 'closed']).optional(), });