Actualizar server.js

This commit is contained in:
2026-02-20 19:47:36 +00:00
parent cf120c44f1
commit ec2d27c843

View File

@@ -981,7 +981,7 @@ app.put("/clients/:id", authMiddleware, async (req, res) => {
// ==========================================
app.get("/statuses", authMiddleware, async (req, res) => {
try {
// 1. FORZAMOS LA INYECCIÓN/ACTUALIZACIÓN SIEMPRE (A prueba de fallos)
// 1. FORZAMOS LA INYECCIÓN/ACTUALIZACIÓN SIEMPRE
const defaults = [
{name:'Pendiente de Asignar', c:'gray', d:true, f:false, sys:true},
{name:'Asignado', c:'blue', d:false, f:false, sys:true},
@@ -1004,13 +1004,24 @@ app.get("/statuses", authMiddleware, async (req, res) => {
}
}
// 🧹 MAGIA LIMPIADORA: Le quitamos el candado a los estados viejos (como "Pendiente de Cita")
// 🧹 Limpiamos el candado a los viejos
const nombresOficiales = defaults.map(d => d.name);
await pool.query("UPDATE service_statuses SET is_system=false WHERE owner_id=$1 AND name != ALL($2::text[])", [req.user.accountId, nombresOficiales]);
// 2. RECUPERAMOS LA LISTA YA ACTUALIZADA PARA EL FRONTEND
let q = await pool.query("SELECT * FROM service_statuses WHERE owner_id=$1 ORDER BY is_system DESC, id ASC", [req.user.accountId]);
res.json({ ok: true, statuses: q.rows });
// 2. RECUPERAMOS LOS ESTADOS
let q = await pool.query("SELECT * FROM service_statuses WHERE owner_id=$1", [req.user.accountId]);
// 🚀 MAGIA DE ORDENACIÓN: Forzamos el orden visual lógico del flujo de trabajo
let sortedStatuses = q.rows.sort((a, b) => {
let idxA = nombresOficiales.indexOf(a.name);
let idxB = nombresOficiales.indexOf(b.name);
// Si hay un estado viejo o creado a mano (ej. Pendiente de Cita), lo mandamos al final (99)
if(idxA === -1) idxA = 99;
if(idxB === -1) idxB = 99;
return idxA - idxB;
});
res.json({ ok: true, statuses: sortedStatuses });
} catch (e) { res.status(500).json({ ok: false }); }
});