diff --git a/server.js b/server.js index a128fc7..23f87ea 100644 --- a/server.js +++ b/server.js @@ -3406,7 +3406,7 @@ app.get("/services/active", authMiddleware, async (req, res) => { // SI ES OPERARIO: Ve solo lo suyo. // 👻 FANTASMAS: Enviamos los archivados de los últimos 15 días para que salgan translúcidos if (req.user.role === 'operario' || req.user.role === 'operario_cerrado') { - query += ` AND s.assigned_to = $2 AND (s.status != 'archived' OR (s.status = 'archived' AND s.created_at >= NOW() - INTERVAL '15 days'))`; + query += ` AND s.assigned_to = $2 AND (s.status != 'archived' OR (s.status = 'archived' AND COALESCE((s.raw_data->>'archived_at')::timestamptz, s.created_at) >= NOW() - INTERVAL '15 days'))`; params.push(req.user.sub); } @@ -3460,6 +3460,7 @@ app.put("/services/set-appointment/:id", authMiddleware, async (req, res) => { // 🧹 AUTO-ARCHIVO DESDE LA APP: Si finaliza, lo quitamos del buzón de proveedores const isFinalApp = stName.includes('finalizado') || stName.includes('terminado') || stName.includes('anulado'); + if (isFinalApp) updatedRawData.archived_at = new Date().toISOString(); const mainStatusApp = isFinalApp ? 'archived' : 'imported'; await pool.query('UPDATE scraped_services SET raw_data = $1, assigned_to = $2, status = $5 WHERE id = $3 AND owner_id = $4',