polysignal_hackaton / backend /src /positions /positions.validators.js
blackmistcode's picture
Add files using upload-large-folder tool
26cbf65 verified
Raw
History Blame Contribute Delete
736 Bytes
/**
* 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(),
});