Skip to content

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 campanha

Responsabilidade de cada módulo

MóduloResponsabilidade principal
WhatsApp RouterRecebe mensagem inbound → decide para qual loja/agente rotear
ChatwootInterface com a API do Chatwoot: contatos, conversas, mensagens, agentes
CampaignsCriação, agendamento e disparo de campanhas WhatsApp e Email
CRM IntelligenceSegmentação de clientes com filtros complexos + snapshots diários
RFMClassificação de clientes por recência/frequência/valor (10 segmentos)
ERP SyncSincronização periódica de dados do Millennium para o banco do CRM
Email TemplatesCRUD de templates MJML com thumbnails e campos de personalização
RedirectResolve tokens de links de campanha → roteia para loja correta via WhatsApp
Config/SettingsConfigurações por organização: SMTP, WhatsApp, lojas, campanhas
Config/UsersConvites, sincronização com Clerk, gestão de papéis
AuditLog de todas as ações sensíveis dos usuários
Post-Sale SurveyPesquisa CSAT/NPS enviada automaticamente após venda
QualityRelatórios de qualidade de dados de CPF, email, telefone, aniversário