import type { Request, Response } from 'express' import { listarUnidadesConFallback, obtenerUnidadConFallback } from '../services/unidades-local.service.js' import { NotFoundError } from '../utils/errors.js' /** * GET /api/unidades — ?disponibles=true filtra solo DISPONIBLE; ?desarrollo= filtra por desarrollo. * Monday caído (o 502) → espejo local (tabla Unidad), mismo contrato de respuesta. */ export async function listarUnidades(req: Request, res: Response): Promise { const unidades = await listarUnidadesConFallback() const disponibles = req.query['disponibles'] === 'true' const desarrollo = req.query['desarrollo']?.toString().toUpperCase() let lista = disponibles ? unidades.filter((u) => u.status === 'DISPONIBLE') : unidades if (desarrollo) { lista = lista.filter((u) => (u.desarrollo || 'DIAGONAL').toUpperCase() === desarrollo) } res.json(lista) } /** GET /api/unidades/:codigo — 404 si no existe ni en Monday ni en el espejo local */ export async function obtenerUnidad(req: Request, res: Response): Promise { const unidad = await obtenerUnidadConFallback(String(req.params['codigo'])) if (!unidad) throw new NotFoundError(`Unidad ${String(req.params['codigo'])} no encontrada`) res.json(unidad) }