From 233d6a574337a6abc2a3f8cb3f2aaf638c2c17f1 Mon Sep 17 00:00:00 2001 From: Rafael Alves Lopes Date: Wed, 27 May 2026 15:23:17 -0300 Subject: [PATCH] Adicionar Arquitetura --- Arquitetura.md | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Arquitetura.md diff --git a/Arquitetura.md b/Arquitetura.md new file mode 100644 index 0000000..1dc3a34 --- /dev/null +++ b/Arquitetura.md @@ -0,0 +1,85 @@ +# Arquitetura Geral + +## Componentes + +```mermaid +flowchart LR + Usuario[Usuario Web] --> Frontend[Frontend React/Vite] + Frontend --> Backend[Backend NestJS API] + Frontend <--> Socket[Socket.IO] + Socket <--> Backend + Backend --> Postgres[(PostgreSQL externo)] + Backend --> LDAP[LDAP / Active Directory] + Backend --> Microsoft[Microsoft Entra ID] + Backend --> WhatsApp[WhatsApp Web / whatsapp-web.js] + Backend --> Puppeteer[Puppeteer / Chromium] + WhatsApp --> Cliente[Cliente WhatsApp] +``` + +## Repositorio + +```txt +omnichannel/ +├── backend/ # API NestJS +├── frontend/ # SPA React/Vite +├── database/migrations/ # SQL de schema e dados iniciais +├── docs/ # Wiki operacional +└── docker-compose.yml # Orquestracao local/deploy simples +``` + +## Backend + +Responsabilidades: + +- autenticar usuarios; +- sincronizar usuario/perfil/especialidade; +- conectar WhatsApp Web; +- controlar fila e atribuicao; +- expor API admin/supervisor/agente; +- emitir eventos realtime via Socket.IO. + +Principais modulos: + +- `auth` +- `admin` +- `whatsapp` + +## Frontend + +Responsabilidades: + +- login; +- home por perfil; +- chat em tempo real; +- administracao; +- supervisor/operacao; +- abertura ativa; +- contatos; +- conteudos da IA e fluxo do bot. + +## Banco + +PostgreSQL externo armazena: + +- usuarios e provedores; +- perfis e areas; +- atribuicoes WhatsApp; +- templates; +- agenda; +- presenca; +- bot flow; +- conteudos da IA; +- auditoria. + +O banco nao e criado pelo Docker Compose deste repositorio. A aplicacao apenas consome uma instancia PostgreSQL ja provisionada. + +## Comunicacao em tempo real + +O backend recebe eventos do WhatsApp e repassa ao frontend via Socket.IO. O frontend tambem faz polling/chamadas HTTP para dados estruturados. + +## Pontos criticos + +- WhatsApp Web depende de sessao e Chromium. +- Migrations ainda precisam de runner formal. +- JWT ainda precisa virar guard real no backend. +- Algumas metricas ainda usam dados de apoio/simulados.