Pular para conteúdo

Notifications

Objetivo

O módulo Notifications é responsável pelo gerenciamento centralizado de todas as notificações da CoreFlow Platform.

Todos os produtos deverão utilizar exclusivamente este módulo para envio de mensagens aos usuários.

É proibido que qualquer produto implemente mecanismos próprios de envio.


Responsabilidades

O módulo deverá fornecer:

  • Notificações internas
  • E-mails
  • Push Notifications
  • SMS
  • WhatsApp
  • Webhooks
  • Alertas do sistema
  • Agendamento
  • Filas de envio
  • Histórico

Arquitetura

                   Notifications


        ┌─────────────────┼─────────────────┐

        │                 │                 │

     CRM / ERP / RH   Financeiro      Serviços Core

        │                 │                 │

        └─────────────────┼─────────────────┘

                Notification Service


         ┌───────────────┼───────────────┐

         │               │               │

      Email          WhatsApp        Push

         │               │               │

         └───────────────┼───────────────┘

                   Notification Log

Canais

O sistema deverá suportar:

Interno

Mensagens exibidas diretamente na plataforma.


E-mail

Envio de mensagens transacionais e informativas.


Push

Notificações para aplicações Web e Mobile.


SMS

Mensagens de texto.


WhatsApp

Integração corporativa para mensagens automatizadas.


Webhooks

Envio de eventos para sistemas externos.


Tipos

As notificações poderão ser classificadas como:

  • Informação
  • Sucesso
  • Aviso
  • Erro
  • Crítica

Prioridade

Cada notificação deverá possuir prioridade:

  • Baixa
  • Normal
  • Alta
  • Urgente

Estados

stateDiagram-v2

[*] --> Pendente

Pendente --> Processando

Processando --> Enviada

Processando --> Falhou

Falhou --> Reprocessando

Reprocessando --> Enviada

Enviada --> Entregue

Entregue --> Lida

Agendamento

O módulo deverá permitir:

  • Envio imediato
  • Envio programado
  • Envio recorrente

Templates

Todas as mensagens deverão utilizar templates.

Cada template possuirá:

  • Código
  • Nome
  • Canal
  • Assunto
  • Conteúdo
  • Variáveis
  • Idioma
  • Status

Variáveis

Exemplo:

{{user_name}}

{{company_name}}

{{protocol}}

{{due_date}}

Filas

Todo envio deverá ocorrer de forma assíncrona utilizando Celery.

É proibido realizar envios diretamente durante a requisição HTTP.


Histórico

Registrar:

  • Destinatário
  • Canal
  • Template
  • Data/Hora
  • Status
  • Tentativas
  • Erro
  • Tempo de processamento

APIs

GET    /api/v1/notifications/

GET    /api/v1/notifications/{id}/

POST   /api/v1/notifications/

POST   /api/v1/notifications/send/

POST   /api/v1/notifications/schedule/

Integrações

O módulo deverá integrar-se com:

  • Authentication
  • Users
  • Companies
  • Audit
  • AI
  • Todos os Produtos

Segurança

Obrigatório:

  • Validação do destinatário
  • Auditoria
  • Controle por empresa
  • Controle de permissões
  • Proteção contra envio duplicado

Regras de Negócio

  • Toda notificação pertence a uma empresa.
  • Toda notificação deverá possuir origem.
  • Todo envio deverá gerar auditoria.
  • Mensagens poderão ser reenviadas quando permitido.
  • Templates inativos não poderão ser utilizados.

Indicadores

O módulo deverá disponibilizar métricas como:

  • Total enviado
  • Total entregue
  • Falhas
  • Tempo médio
  • Taxa de leitura
  • Taxa de abertura
  • Volume por canal
  • Volume por produto

Testes Obrigatórios

  • Envio de e-mail
  • Envio de WhatsApp
  • Envio Push
  • Agendamento
  • Reprocessamento
  • Histórico
  • Auditoria
  • Multiempresa

Anti-patterns

É proibido:

  • Envio síncrono durante requisições HTTP
  • Templates hardcoded
  • Duplicação de mensagens
  • Ausência de auditoria
  • Ausência de histórico
  • Envio sem validação de permissões

Objetivo Final

Disponibilizar um serviço corporativo, escalável e reutilizável de notificações para toda a CoreFlow Platform, permitindo comunicação consistente entre usuários, produtos e sistemas externos através de múltiplos canais.