Banner persistente + som em loop + OS notification + title flash + vibração mobile quando conversa transiciona pra 'open' vindo de pending/snoozed/resolved. Exige interação pra dismissar — atendente não perde evento de reabertura. - AggressiveConversationBanner.vue: banner full-width no topo, dismissable, mostra nome do contato + inbox + status anterior - aggressiveAlert.js: manager do som (loop infinito), title flash (intervalo 1s), Notification API (requireInteraction: true), navigator.vibrate (padrão 500-200-500-200-500) - actionCable.onStatusChange: detecta transição pra 'open' e dispara trigger via BUS_EVENTS (só se status anterior ≠ open, pra não alertar conversa nova criada já em open) - i18n pt_BR + en: chaves de notificação (title/body/dismiss) - busEvents: AGGRESSIVE_ALERT_TRIGGER + AGGRESSIVE_ALERT_DISMISS Camada 1 da feature. Camada 2 (escalation SMS/WhatsApp se não dismissar em X segundos) fica pra outro PR. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
14 lines
400 B
JSON
14 lines
400 B
JSON
{
|
||
"AGGRESSIVE_CONVERSATION_BANNER": {
|
||
"SINGLE": "Conversation waiting for a response!",
|
||
"MULTIPLE": "{count} conversations waiting for a response!",
|
||
"DISMISS_ALL": "Dismiss all",
|
||
"DISMISS_ONE": "Dismiss",
|
||
"CLOSE_ICON": "×",
|
||
"ALERT_ICON": "🚨",
|
||
"FROM_PENDING": "from pending",
|
||
"FROM_SNOOZED": "reopened (snoozed)",
|
||
"FROM_RESOLVED": "reopened (resolved)"
|
||
}
|
||
}
|