# Plugin Inbox — NewWhats como Motor Central **Data:** 2026-04-16 **Status:** Conversa de alinhamento arquitetural — nenhum código escrito ainda --- ## Contexto do Projeto - **Motor:** `/home/deploy/projetos/newwhats.local` — Baileys, inbox, sessões, storage Wasabi, sistema de plugins, pair API com integration_key - **Satélites:** múltiplos projetos em `/home/deploy/projetos/` que consomem o motor via API (ex: Alemão Conveniências em `/home/deploy/projetos/alemaoconveniencias.local`) - **Já implementado:** pair system (OTP e-mail), plugin newwhats no Alemão com x-nw-key auth, modal pareamento 3 passos - **Serviços:** newwhats-backend.service (8008), alemaoconveniencias.service (4001) --- ## Objetivo Transformar o NewWhats em motor SaaS multi-tenant. Os satélites **não instalam Baileys** — consomem inbox, sessões, QR code e secretária virtual via API autenticada por `integration_key`. **Requisitos críticos:** - Não perde mensagem - Não trava, não bloqueia - Gera e replica QR code em tempo real - Replica fielmente o comportamento do NewWhats - Acessível via **botão no sidebar** de cada projeto satélite --- ## Decisão Arquitetural Principal ### Duas camadas obrigatórias: ``` ┌─────────────────────────────────┐ │ IFRAME │ ← visualização / operação humana │ (inbox, QR, sessions) │ motor serve a UI completa └─────────────────────────────────┘ + ┌─────────────────────────────────┐ │ API + WEBHOOK │ ← integração de código │ satélite age e reage a eventos │ └─────────────────────────────────┘ ``` ### Por que iframe para a UI: O motor expõe uma página autenticada: ``` https://newwhats.local/embed?key=&session=X ``` O plugin `nw-client` no satélite faz apenas: 1. Adiciona botão no sidebar 2. Abre painel lateral deslizante (slide-over) com `