Skip to content

ACK repetido reescreve o ACS do alerta e audita "acknowledged" de novo #88

Open

Description

@hbgit

Origem: item adiado da #76 (PR #85). O comportamento é anterior à #76.

Problema. OrmAlertStore.acknowledge (backend/sinalacs_server/lib/src/infrastructure/database/orm_alert_store.dart) sempre grava acsId: acsUuid do ACS que fez o ACK, e o serviço audita acknowledged. Um ACK que chega depois da confirmação — ou depois da conclusão (#76) — feito por outro ACS da mesma microárea (ou por reentrega) troca o ACS responsável registrado no alerta e gera uma linha de auditoria acknowledged que não corresponde a uma mudança de status.

Por que importa. A trilha passa a dizer que o alerta foi confirmado de novo, e alerts.acsId deixa de apontar quem de fato confirmou/concluiu. Isso confunde a auditoria (#45) e o escalonamento (#44).

O que falta (proposta).

  • Se o alerta já está acknowledged ou resolved, o ACK é idempotente: não reescreve acsId, receivedAt nem acknowledgedAt (os dois últimos já usam ??), e audita um evento distinto (ex.: already_acknowledged), como alreadyResolved faz na conclusão.
  • A tabela alert_acknowledgements (índice único alertId, acsId) continua registrando cada ACS que confirmou.
  • Testes: ACK repetido por outro ACS não altera acsId; auditoria do ACK repetido tem a ação nova.

Decidir junto: se o ACK de um segundo ACS deve ser recusado ou só registrado.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions