import type { Request, Response } from 'express' import { getUnidadesLocal, getUnidadLocal } from '../services/unidades-local.service.js' import { NotFoundError } from '../utils/errors.js' /** * GET /api/unidades — ?disponibles=true filtra solo DISPONIBLE; ?desarrollo= filtra por desarrollo. * Lee el espejo local (tabla Unidad), mismo contrato de respuesta. */ export async function listarUnidades(req: Request, res: Response): Promise { const unidades = await getUnidadesLocal() 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 en el espejo local */ export async function obtenerUnidad(req: Request, res: Response): Promise { const unidad = await getUnidadLocal(String(req.params['codigo'])) if (!unidad) throw new NotFoundError(`Unidad ${String(req.params['codigo'])} no encontrada`) res.json(unidad) }