Appearance
Alerta masiva — Broadcast + impacto económico
Caso: cae la OLT del nodo Tegucigalpa-Norte a las 14:30. Telemetrics dispara una alerta masiva que afecta 87 ONTs.
Secuencia
Cálculo de impacto económico
Para cada dispositivo afectado:
device.crm_external_contract_id→ buscacontracten Mongo porexternal_id.- Del contract obtiene
contact_id. - Fan-out paralelo a
/subscriptions/by-contract/:external_id?status=active. - Por cada subscription, normaliza a
monthly_cents:monthly → amount_cents weekly → amount_cents * 52 / 12 yearly → amount_cents / 12 daily → amount_cents * 365 / 12 - Suma total = MRC afectado.
- Pérdida por hora ≈
MRC / 730(horas promedio/mes). - Pérdida acumulada =
pérdida/hora * (now - alert_started_at)— se muestra en hero y se actualiza en vivo.
Vista detalle vs modal
Las alertas individuales abren el AlertDetailSidebar modal (comportamiento previo intacto).
Las alertas masivas (marcadas con is_mass_outage=true) abren MassOutageDetailView — una ruta dedicada (/alerts/:id/mass-outage) con:
- Hero grande mostrando pérdida acumulada.
- Tabla de ONTs con cliente, sucursal, contrato.
- Bitácora de comentarios con formulario.
- Botón "Broadcast masivo" (idempotente por
alert_id).
Template Meta usado
service_suspended (HSM aprobado por Meta). Cuerpo:
Hola 1, estamos trabajando en restablecer el servicio en tu zona. Tiempo estimado: 2. Disculpá las molestias, te avisamos cuando vuelva.
Variables inyectadas por el broadcaster: 1=nombre_cliente, 2=ETA si disponible o "pronto".
Siguiente: Cobranza (dunning).