Appearance
Módulos do Sistema
Visão geral de todos os módulos do backend e onde encontrar cada um.
Mapa de módulos
backend/src/
├── common/ # Compartilhado por todos os módulos
│ ├── guards/ # ClerkAuth, Permissions, ReadOnly, Throttler, InternalApiKey
│ ├── decorators/ # @CurrentUser, @Public, @Permissions, @Roles
│ ├── interceptors/ # Audit, Tenant
│ ├── middleware/ # CorrelationId, HttpLogger
│ ├── services/ # Encryption, Mail, MinIO, StoreAliasResolver, ChatwootDb
│ ├── utils/ # BRT timezone, CPF crypto, Phone utils
│ └── tenancy/ # TenantContext (AsyncLocalStorage)
│
└── modules/
├── admin/ # Endpoints de super-admin (métricas, containers, queues)
├── audit/ # Log de auditoria (AccessLog)
├── config/
│ ├── roles/ # Papéis e permissões por organização
│ ├── settings/ # Configurações de loja, email, WhatsApp, campanha
│ ├── store-aliases/ # Hierarquia de lojas (principal/alias)
│ └── users/ # Usuários, convites, sync Clerk
├── crm/
│ ├── intelligence/ # Segmentação, exportação, snapshots de segmentos
│ ├── post-sale-survey/ # Pesquisa pós-venda (CSAT/NPS)
│ ├── quality/ # Qualidade de dados das vendas
│ ├── rfm/ # Análise RFM, migrations, recompute
│ └── survey/ # Pesquisa de satisfação pós-atendimento
├── email-templates/ # Templates de email (MJML, design JSON, thumbnails)
├── erp/
│ ├── customers/ # Gestão de clientes (opt-out, preferências)
│ ├── millenium/ # HTTP client para o ERP Millennium
│ ├── sales/ # Vendas e métricas de varejo
│ └── sync/ # Sync de clientes, vendedores, produtos, lojas
├── integrations/
│ └── whatsapp/
│ ├── attribution/ # Atribuição de conversões a campanhas
│ ├── chatwoot/ # Integração com Chatwoot (API, config, inbox)
│ ├── evolution/ # Integração com Evolution API
│ ├── n8n/ # Endpoints de eventos do n8n
│ ├── reconciliation/ # Reconciliação de status de mensagens
│ └── router/ # Roteador principal de mensagens inbound
├── marketing/
│ ├── campaigns/ # Criação, agendamento, disparo de campanhas
│ └── email-tracking/ # Rastreamento de abertura/clique/unsubscribe
└── redirect/ # Resolução de tokens de redirecionamento de campanhaResponsabilidade de cada módulo
| Módulo | Responsabilidade principal |
|---|---|
| WhatsApp Router | Recebe mensagem inbound → decide para qual loja/agente rotear |
| Chatwoot | Interface com a API do Chatwoot: contatos, conversas, mensagens, agentes |
| Campaigns | Criação, agendamento e disparo de campanhas WhatsApp e Email |
| CRM Intelligence | Segmentação de clientes com filtros complexos + snapshots diários |
| RFM | Classificação de clientes por recência/frequência/valor (10 segmentos) |
| ERP Sync | Sincronização periódica de dados do Millennium para o banco do CRM |
| Email Templates | CRUD de templates MJML com thumbnails e campos de personalização |
| Redirect | Resolve tokens de links de campanha → roteia para loja correta via WhatsApp |
| Config/Settings | Configurações por organização: SMTP, WhatsApp, lojas, campanhas |
| Config/Users | Convites, sincronização com Clerk, gestão de papéis |
| Audit | Log de todas as ações sensíveis dos usuários |
| Post-Sale Survey | Pesquisa CSAT/NPS enviada automaticamente após venda |
| Quality | Relatórios de qualidade de dados de CPF, email, telefone, aniversário |