Commit Graph

4 Commits

Author SHA1 Message Date
388e1da338 feat(modo-local): CRM 100% local sin dependencia de Monday.com
Nuevas tablas:
- ActividadLocal (historial de llamadas, reuniones, tareas)
- AsignacionLocal (round-robin local)
- fechaLimite en LeadCaptura

Servicios nuevos:
- actividad-local.service.ts (CRUD actividades)
- local-canal.ts (canal de envío para recordatorios)
- seed-modo-local.js (activar modo local)

Mi día local mejorado:
- Mis actividades hoy (filtros usuario/fecha/estado)
- Apartados por vencer (con fechaLimite real)
- Equipo (contadores por vendedor, solo coordinador/admin)
- unidadCodigo en oportunidades desde datosJson

Automatizaciones locales:
- Round-robin: asigna leads sin vendedor + crea actividad
- Inactividad: detecta oportunidades >10 días sin update
- Escalado: alerta oportunidades >48h sin contacto

Reportes: actividadesAbiertas + parcial:false en modo local
Cron wiring: crons locales cuando Monday caído

661 tests verdes.
2026-09-07 04:00:15 +00:00
aadbc6f83f fix(mi-dia): leads y oportunidades en pestañas separadas + limpieza
- misLeads: solo muestra items del tablero Leads (captura ligera)
- misOportunidades: muestra items del tablero Oportunidades (afluencia)
- Eliminado el merge que causaba que el mismo item apareciera en ambas
- apartadosPorVencer: filtrado por esMio (solo propios)
- Limpiado duplicado MONICA RODRIGUEZ VEGA de Monday Leads
- 630 tests verdes
2026-09-06 20:22:55 +00:00
50e6eca7da fix(mi-dia): dedup capturas que ya aparecen en leads/oportunidades
Cuando un lead se crea con Monday activo, aparece tanto en el tablero
Monday (misLeads) como en LeadCaptura (misCapturas). Filtrar de
'misCapturas' los items cuyo leadId ya existe en misLeads/misOportunidades
para evitar el duplicado visual que reportan los vendedores.

597 tests verdes.
2026-09-06 08:26:03 +00:00
60649890eb feat(modo-local): fallback completo sin Monday + cola de sincronización
- Circuit breaker saludMonday (3 fallos → modo local; ping cada 60s)
- Endpoint GET /api/sistema/estado {mondayOk, pendientesSync}
- LeadCaptura extendida (board, etapa, origen, motivo, pendienteSync)
- Tablas Unidad (espejo inventario, 288 seed) + SyncPendiente
- crmLocal: crearLead, afluencia, cambio etapa, descarte, conversión, apartar
- Ruteo en controllers: fallback local ante 502 o Monday caído
- Mi día local: resumen completo desde SQLite + unión con Monday
- Fallbacks: unidades, contactos, reportes, prefill, buscador
- Sync worker cada 2min + handlers 15 tipos (con DependenciaPendienteError)
- Gate automatizaciones: skip si !mondayOk
- Banner 'Modo local' en 5 apps + badge pendiente en mi-dia
- 597 API tests + 263 front tests verdes

Env MODO_LOCAL_FORZADO=true para testing sin Monday.
2026-09-06 08:08:56 +00:00