Actualizar server.js

This commit is contained in:
2026-03-07 18:05:23 +00:00
parent f01f3c4b19
commit 2f05d9e776

View File

@@ -2782,28 +2782,20 @@ app.get("/providers/credentials", authMiddleware, async (req, res) => {
// 3. Obtener resumen de mensajes nuevos para el operario (Globo de Notificación) // 3. Obtener resumen de mensajes nuevos para el operario (Globo de Notificación)
app.get("/worker/notifications", authMiddleware, async (req, res) => { app.get("/worker/notifications", authMiddleware, async (req, res) => {
try { try {
const accountId = req.user.accountId; // Buscamos expedientes donde la fecha del último mensaje de ADMIN sea más reciente que la última lectura del operario
const userId = req.user.sub;
if (!accountId || !userId) return res.json({ ok: false, unreadCount: 0, serviceIds: [] });
// Busca expedientes asignados a este operario que tengan mensajes de ADMIN en las últimas 24h
const q = await pool.query(` const q = await pool.query(`
SELECT DISTINCT scraped_id SELECT DISTINCT s.id
FROM service_communications FROM scraped_services s
WHERE owner_id = $1 JOIN service_communications c ON s.id = c.scraped_id
AND sender_role IN ('admin', 'superadmin') WHERE s.assigned_to = $1
AND created_at > NOW() - INTERVAL '24 hours' AND c.sender_role IN ('admin', 'superadmin')
AND scraped_id IN (SELECT id FROM scraped_services WHERE assigned_to = $2) AND c.is_internal = FALSE
`, [accountId, userId]); AND c.created_at > COALESCE(s.last_chat_read_worker, '2000-01-01')
`, [req.user.sub]);
res.json({ res.json({ ok: true, unreadCount: q.rowCount, serviceIds: q.rows.map(r => r.id) });
ok: true,
unreadCount: q.rowCount,
serviceIds: q.rows.map(r => r.scraped_id)
});
} catch (e) { } catch (e) {
console.error("Error en notificaciones operario:", e); console.error("Error notificaciones:", e);
res.status(500).json({ ok: false }); res.status(500).json({ ok: false });
} }
}); });