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(),
});