3.5 KiB
3.5 KiB
Migração dos Canais Não-Oficiais (Wuzapi e Evolution API)
Data: 22/02/2026 Autor: Assistente AI / Arquiteto de Software
Objetivo
Transferir toda a implementação de canais de WhatsApp não-oficiais (Wuzapi e Evolution API) do projeto de referência para o novo projeto focado em IA, visando aproveitar as abstrações e integrações previamente construídas de forma segura.
Contexto
O projeto referência já continha suporte robusto a provedores como Wuzapi e Evolution API para o canal do WhatsApp. O novo projeto precisa herdar essa capacidade, já que os disparos e interações automatizadas vão continuar usando números do WhatsApp debaixo destes provedores, por uma questão de custo e viabilidade.
Passos Realizados
-
Atualização do Banco de Dados (Migrações):
- Foram migradas as dependências para
channel_whatsappreceber tokens encriptados. - Um conflito de migração duplicada (
AddNameToWebhooks) foi corrigido, apagando-se o arquivo colidente e executandobundle exec rails db:migrate.
- Foram migradas as dependências para
-
Rotas e Controladores:
- Adicionadas as rotas
resource :wuzapianinhado dentro dos membros das inboxes. - Adicionada a rota global para receber playloads de eventos em
webhooks/wuzapi/:inbox_id.
- Adicionadas as rotas
-
Backend Service & Model (
app/):- Transposto o modelo
app/models/channel/whatsapp.rbpara contemplar provisionamento do Wuzapi e Evolution API (provision_wuzapi_user, tratamento deprovider_config). - Copiados os Providers de Serviço em
app/services/whatsapp/providers/wuzapi_service.rbeevolution_service.rb. - Copiados os módulos de Clients HTTP (Acesso Wuzapi/Evolution) alocados em
app/services/wuzapieapp/services/evolution_api.
- Transposto o modelo
-
Frontend Dashboard (
app/javascript/):- Transpostos os componentes Vue associados aos canais (
Wuzapi.vue,EvolutionGo.vue, etc.) de/channels/. - Modificados os componentes pais (
Settings.vueeWhatsapp.vue) para exibir as seleções Wuzapi e Evolution através da constante globalPROVIDER_TYPES. - Subscrevida a pasta de locales correspondente (
dashboard/i18n/locale/*/inboxMgmt.jsonejasmine.json) contendo as chaves de UX de configuração dos formulários.
- Transpostos os componentes Vue associados aos canais (
Principais Arquivos Alterados / Criados
config/routes.rbapp/models/channel/whatsapp.rbapp/services/whatsapp/providers/wuzapi_service.rbapp/services/whatsapp/providers/evolution_service.rbapp/services/wuzapi/*eapp/services/evolution_api/*app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Wuzapi.vueeEvolutionGo.vueapp/javascript/dashboard/i18n/locale/...
Como Validar
- Reiniciar o Servidor Rails e Webpack:
# Parar o serviço web/worker e webpack-dev-server se rodando manualmente, e inicializá-los bundle exec rails restart - Acessar o Painel Front-end: Vá em Configurações > Caixas de Entrada > Adicionar Caixa de Entrada > Whatsapp. O usuário deverá ver os cards "Wuzapi" e "Evolution API" entre os provedores selecionáveis.
- Homologar a Conexão Wuzapi/Evolution: Clicar sobre Wuzapi, fornecer tokens e base URL definidos, e escanear o QR Code gerado. O Status deverá constar como conectado.
Como Reverter
- Remover as pastas
app/services/wuzapieapp/services/evolution_api. - Retirar os imports e chamadas em
app/models/channel/whatsapp.rb. - Reverter o commit nos componentes
Settings.vueeWhatsapp.vue. - Rodar migrações de "down" referentes as colunas inseridas em
channel_whatsapp.