/** * Rutas REST del modulo de posiciones (simulador virtual). * * Endpoints (montados en /api/v1/positions): * POST / → abrir posicion (validate openBody). * GET / → listar posiciones (validate listQuery en query). * DELETE /:id → cerrar posicion (validate idParam en params). * * Todas las rutas requieren autenticacion JWT (router.use(requireAuth)). */ import { Router } from 'express'; import { validate } from '../middlewares/validate.js'; import { requireAuth } from '../middlewares/requireAuth.js'; import { positionsController } from './positions.controller.js'; import { openBody, idParam, listQuery } from './positions.validators.js'; const router = Router(); // Endpoint publico (sugerencia de sizing) - no requiere autenticacion router.get('/suggestion/:marketId', positionsController.suggest); router.use(requireAuth); router.post('/', validate(openBody), positionsController.open); router.get('/', validate(listQuery, 'query'), positionsController.list); router.delete('/:id', validate(idParam, 'params'), positionsController.close); export default router;