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
- 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:
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.