import type { Request, Response, NextFunction } from 'express'; import * as alertasService from '../services/alertas.service.js'; export async function getAlertas(req: Request, res: Response, next: NextFunction) { try { const { leida, resuelta, prioridad } = req.query; const alertas = await alertasService.getAlertas(req.tenantPool!, { leida: leida === 'true' ? true : leida === 'false' ? false : undefined, resuelta: resuelta === 'true' ? true : resuelta === 'false' ? false : undefined, prioridad: prioridad as string, }); res.json(alertas); } catch (error) { next(error); } } export async function getAlerta(req: Request, res: Response, next: NextFunction) { try { const alerta = await alertasService.getAlertaById(req.tenantPool!, parseInt(String(req.params.id))); if (!alerta) { return res.status(404).json({ message: 'Alerta no encontrada' }); } res.json(alerta); } catch (error) { next(error); } } export async function createAlerta(req: Request, res: Response, next: NextFunction) { try { const alerta = await alertasService.createAlerta(req.tenantPool!, req.body); res.status(201).json(alerta); } catch (error) { next(error); } } export async function updateAlerta(req: Request, res: Response, next: NextFunction) { try { const alerta = await alertasService.updateAlerta(req.tenantPool!, parseInt(String(req.params.id)), req.body); res.json(alerta); } catch (error) { next(error); } } export async function deleteAlerta(req: Request, res: Response, next: NextFunction) { try { await alertasService.deleteAlerta(req.tenantPool!, parseInt(String(req.params.id))); res.status(204).send(); } catch (error) { next(error); } } export async function getStats(req: Request, res: Response, next: NextFunction) { try { const stats = await alertasService.getStats(req.tenantPool!); res.json(stats); } catch (error) { next(error); } } export async function markAllAsRead(req: Request, res: Response, next: NextFunction) { try { await alertasService.markAllAsRead(req.tenantPool!); res.json({ success: true }); } catch (error) { next(error); } }