Pular para o conteúdo principal

🏗️ 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

  1. Requisições de Página — GET para /inbox, /contacts, etc. → carrega HTML + JS
  2. Requisições de API — GET/POST/PATCH/DELETE para /api/... → retorna JSON
  3. Requisições de Webhook — POST dos provedores para /webhooks/{type}/{id} → processa mensagens de entrada
  4. 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