🏗️ Como o PulseHub Funciona
O PulseHub é uma aplicação web clássica MVC (Model-View-Controller) com uma estrutura plana e legível. Não há framework — roteamento, acesso ao banco de dados, autenticação e renderização são todos implementados diretamente em PHP.
Navegador / Provedor de Canal
│
▼
index.php ← Front controller
│
▼
app/router.php ← URL → [Controller, método]
│
▼
app/Controllers/ ← Lógica de negócios
│
┌────┴────────────────────┐
▼ ▼
app/Views/ app/Helpers/db.php
(Templates HTML) (Consultas PDO MySQL)
Os Quatro Tipos de Requisição
- Requisições de Página — GET para
/inbox,/contacts, etc. → carrega HTML + JS - Requisições de API — GET/POST/PATCH/DELETE para
/api/...→ retorna JSON - Requisições de Webhook — POST dos provedores para
/webhooks/{type}/{id}→ processa mensagens de entrada - Stream SSE — conexão persistente para
/sse→ envia eventos em tempo real para o navegador
Fluxo de Dados: Mensagem de Entrada
1. Cliente envia mensagem no WhatsApp
2. Meta faz POST para /webhooks/whatsapp/{channel_id}
3. WebhookController verifica assinatura, normaliza o payload
4. Encontra/cria contato, encontra/cria conversa
5. Salva mensagem, dispara eventos SSE, enfileira eventos de automação
6. Retorna 200 para a Meta
7. SSE envia para todos os navegadores de agentes conectados em até 2 segundos
Fluxo de Dados: Mensagem de Saída
1. Agente digita a resposta e clica em Enviar
2. Navegador faz POST para /api/conversations/{id}/messages
3. Salva mensagem, chama a API do canal (WhatsApp, Twilio, etc.)
4. Envia evento SSE para outros agentes
5. Retorna 201