Algunos hechos importan a quienes reparten el trabajo, no solo a los participantes del incidente. Quiénes son se decide por permiso, no por rol, y solo cuentan las cuentas activas:
- Quienes pueden asignar (
incidents.assign): reciben “nuevo sin asignar”, “crítico creado” y “vencido”. - Quienes pueden aprobar reaperturas (
incidents.reopen.approve): reciben “reapertura pendiente”.
Los agentes no reciben “nuevo sin asignar”. Cada persona recibe un solo aviso por hecho, el más importante para ella: crítico gana a asignado, y asignado gana a sin asignar.
Paso a paso
- APISe registra "created" o "reopen_requested"
- Base de datosBusca a quienes coordinan
CoordinatorDirectorycon la regla de permisos efectivos en SQL (PermissionSql): rol + concedidos − quitados, solo cuentas activas. Solo se consulta para estos dos registros. - Cola¿Qué hecho es?
- Cola¿Prioridad crítica?
- Coordinación"Crítico creado" a quienes asignan y al asignado
- Cola¿Quedó sin asignar?
- Coordinación"Nuevo sin asignar" a quienes asignan
- Coordinación"Asignado" solo a quien lo recibe
- Coordinación"Reapertura pendiente" a quienes aprueban
En todos los casos se excluye a quien hizo el cambio: quien crea un crítico y además puede asignar no se avisa a sí mismo. Los avisos de vencidos siguen su propio camino: Vencidos cada 5 minutos.
Dónde está en el código
Recipients(forCreation) yCoordinators.DatabaseCoordinatorDirectoryyPermissionSql.NotifyParticipants.- Explicación: Módulo Notifications.