# Chamados via WhatsApp — Pignus Montagem

Este pacote conecta o WhatsApp Business (API oficial da Meta) ao banco de
dados `chamados_whatsapp`, criando um chamado automaticamente sempre que
um cliente manda mensagem.

## Arquivos

- `config.php` — configurações (banco de dados e credenciais da Meta). **Preencha os valores reais aqui, direto no servidor.**
- `db.php` — conexão com o banco (PDO).
- `helpers.php` — funções de negócio (achar/criar cliente, achar/criar chamado, salvar mensagem, enviar resposta).
- `webhook.php` — arquivo público que a Meta chama a cada mensagem recebida.
- `.htaccess` — bloqueia o acesso direto (pelo navegador) aos arquivos que contêm senha/token.

O banco de dados (`schema_chamados_whatsapp.sql`) já foi criado antes; este pacote assume que as tabelas `clientes`, `atendentes`, `chamados`, `mensagens` e `webhook_log` já existem.

## Passo a passo para colocar no ar

1. **Suba os arquivos no subdomínio.** Por exemplo, se o subdomínio for `suporte.pignusmontagem.com`, coloque todos os arquivos deste pacote na pasta pública desse subdomínio (a mesma pasta do `index.php`, se houver).

2. **Preencha `config.php`** com:
   - A senha real do banco `pignusmontagem_suporte` (a que você já usou pra criar o banco).
   - Um `WHATSAPP_VERIFY_TOKEN` — uma palavra qualquer, inventada por vocês (ex.: `pignus2026verify`). Vai ser usada só na etapa 4 abaixo.
   - O `WHATSAPP_ACCESS_TOKEN` e o `WHATSAPP_PHONE_NUMBER_ID`, que você pega no painel da Meta (próximo passo).

3. **Crie o app na Meta for Developers** (developers.facebook.com):
   - Crie um app do tipo "Business".
   - Adicione o produto **WhatsApp**.
   - Na aba "Introdução" (ou "API Setup"), a Meta já te dá um número de teste, um `Phone number ID` e um `Access Token` temporário (válido por 24h) — bons para o primeiro teste. Para usar de verdade (sem expirar), depois é preciso gerar um token permanente vinculado a um usuário do sistema (System User), nas configurações do Business Manager.

4. **Cadastre o webhook**, ainda no painel do app, em WhatsApp > Configuração > Webhook:
   - **Callback URL:** `https://suporte.pignusmontagem.com/webhook.php` (ajuste para o subdomínio real de vocês).
   - **Verify Token:** o mesmo valor que você colocou em `WHATSAPP_VERIFY_TOKEN` no `config.php`.
   - Depois de salvar, marque para "assinar" (subscribe) o campo `messages`.

5. **Teste:** mande uma mensagem de um celular para o número de teste do WhatsApp. Se tudo estiver certo, aparecerá uma linha nova nas tabelas `clientes`, `chamados` e `mensagens`, e (se `ENVIAR_CONFIRMACAO_AUTOMATICA` estiver `true`) o celular recebe a mensagem automática de confirmação.

## Se algo não funcionar

- **Nada acontece no banco:** olhe a tabela `webhook_log` — se tiver uma linha nova lá, o webhook está sendo chamado; se não tiver nenhuma, o problema é a URL/verify token cadastrados na Meta, ou o `.htaccess`/servidor bloqueando o acesso.
- **Erro de conexão com o banco:** confirme que o MySQL do servidor aceita conexão vindo do próprio servidor (normalmente sim, já que o script roda no mesmo servidor onde está o banco).
- Ative o log de erros do PHP (`error_log`) no servidor para ver mensagens detalhadas — o `webhook.php` grava ali qualquer problema ao processar uma mensagem, sem derrubar o restante do processamento.

## Limitações desta primeira versão

- Mídia (foto, áudio, documento) é registrada no banco, mas o arquivo em si ainda não é baixado automaticamente — fica marcado como "[imagem recebida]" etc. Dá pra evoluir isso depois se for útil.
- Não tem tela de atendimento (painel para ver e responder chamados) — por enquanto, os dados ficam só no banco. Se quiser, o próximo passo natural é uma telinha simples em PHP para o time visualizar e responder os chamados.
