const express = require('express'); const prisma = require('../config/db'); const router = express.Router(); // GET /api/alerts?state=...&type=...&severity=... router.get('/', async (req, res, next) => { try { const { state, type, severity } = req.query; const where = {}; if (state) { where.state = { abbr: state.toUpperCase() }; } if (type) { where.type = type; } if (severity) { where.severity = severity; } // Only show active alerts (endsAt is null or in the future) where.OR = [ { endsAt: null }, { endsAt: { gte: new Date() } }, ]; const alerts = await prisma.alert.findMany({ where, include: { state: { select: { name: true, abbr: true } } }, orderBy: [{ severity: 'desc' }, { startsAt: 'desc' }], }); res.json(alerts); } catch (err) { next(err); } }); // GET /api/alerts/:id router.get('/:id', async (req, res, next) => { try { const alert = await prisma.alert.findUnique({ where: { id: req.params.id }, include: { state: { select: { name: true, abbr: true } } }, }); if (!alert) return res.status(404).json({ error: 'Alert not found.' }); res.json(alert); } catch (err) { next(err); } }); module.exports = router;