File size: 736 Bytes
26cbf65 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | /**
* 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(),
});
|