From 1b865fbb09ae5bc6c911c80d9521bffe8a2e2ec1 Mon Sep 17 00:00:00 2001 From: Rafael Lopes Date: Fri, 19 Jun 2026 16:54:59 -0300 Subject: [PATCH] =?UTF-8?q?FEAT:=20Adiciona=20migra=C3=A7=C3=A3o=20para=20?= =?UTF-8?q?persist=C3=AAncia=20de=20mensagens=20WhatsApp=20e=20atualiza=20?= =?UTF-8?q?README=20e=20docker-compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 +++++++----- database/migrations/024_mensagens.sql | 16 ++++++++++++++++ docker-compose.yml | 2 ++ 3 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 database/migrations/024_mensagens.sql diff --git a/README.md b/README.md index 0185c5e..f43e050 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ omnichannel/ - JWT próprio da aplicação com perfis e especialidades. - Atendimento WhatsApp em tempo real via `whatsapp-web.js`. - Socket.IO para atualização de chats/mensagens. -- Agente Virtual Sothis para triagem e roteamento. +- Agente Virtual para triagem e roteamento. - Fila por especialidade. - Assumir, liberar, transferir e fechar atendimento. - Abertura ativa com templates aprovados. @@ -54,10 +54,10 @@ omnichannel/ - TypeScript `^6.0`. - PostgreSQL via `pg`. - Socket.IO `^4.8`. -- `whatsapp-web.js` `^1.34`. +- `whatsapp-web.js` `^1.34`, usando Puppeteer/Chrome para controlar o WhatsApp Web. - LDAP via `ldapts`. - JWT via `jsonwebtoken`. -- Logs com `winston`. +- Logs com `NestJS`. ### Frontend @@ -97,7 +97,8 @@ omnichannel/ 1. Configure `.env.development` na raiz com os dados do banco externo. 2. Garanta que o PostgreSQL externo esteja acessível a partir do container backend. -3. Suba backend e frontend: +3. Garanta que o backend consiga iniciar Chrome/Chromium para o Puppeteer usado pelo `whatsapp-web.js`. +4. Suba backend e frontend: ```bash docker compose up -d --build @@ -166,7 +167,8 @@ Para ambiente novo, antes de subir backend para uso real: 2. aplicar as migrations em ordem; 3. validar tabelas principais; 4. criar/atribuir usuário admin; -5. subir backend e frontend. +5. validar Chrome/Chromium e volume de sessao WhatsApp para Puppeteer; +6. subir backend e frontend. Detalhes em: diff --git a/database/migrations/024_mensagens.sql b/database/migrations/024_mensagens.sql new file mode 100644 index 0000000..b8bbe58 --- /dev/null +++ b/database/migrations/024_mensagens.sql @@ -0,0 +1,16 @@ +-- Migration 024: Persistência de mensagens WhatsApp (Meta API) +CREATE TABLE mensagens ( + id SERIAL PRIMARY KEY, + wamid VARCHAR(255) UNIQUE NOT NULL, + chat_id VARCHAR(50) NOT NULL, + from_me BOOLEAN NOT NULL DEFAULT FALSE, + type VARCHAR(50) NOT NULL DEFAULT 'text', + body TEXT, + sender_name VARCHAR(255), + status VARCHAR(20), + timestamp BIGINT NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT NOW() +); + +CREATE INDEX idx_mensagens_chat_id ON mensagens(chat_id); +CREATE INDEX idx_mensagens_timestamp ON mensagens(timestamp); diff --git a/docker-compose.yml b/docker-compose.yml index 79b36fa..20e02d8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,7 @@ services: build: context: ./frontend dockerfile: Dockerfile + restart: unless-stopped ports: - "4000:3000" @@ -10,6 +11,7 @@ services: build: context: ./backend dockerfile: Dockerfile + restart: unless-stopped ports: - "4001:3001" env_file: