# New Support — Servidor WhatsApp (Baileys)

Pasta pronta para rodar em **https://newsupport.online/**

## O que mudou

- Motor novo: **Baileys** (`atexovi-baileys`) — sem Chromium/Puppeteer
- Sessões persistem em `baileys_sessions/` (não desvincula o aparelho em reinício)
- Reconexão automática contínua para números autenticados
- Painel CakePHP usa MySQL (`WsApp_*`) via `app/webroot/wsapp/api_bridge.php`
- Interface em **PT-BR** no menu e páginas WhatsApp Pro

## 1) Banco de dados

No MySQL do painel (`newsupport_teste`), execute:

```bash
mysql -u newsupport_teste -p newsupport_teste < schema_wsapp.sql
```

## 2) Configurar

Edite `db.config` se o MySQL não for localhost:

- `host`, `user`, `password`, `database`
- `port` = porta HTTP do Node (padrão **8167**)
- `baseUrl` = `https://newsupport.online`

Se o Node rodar em **outro VPS**, aponte `host` para o IP do MySQL e libere Remote MySQL.

## 3) Instalar e iniciar

```bash
cd WS-SERVER
npm install
npm start
```

Equivalente:

```bash
node server.js --both
```

Modos:

| Comando | Função |
|---------|--------|
| `npm start` / `--both` | SMS + Voz |
| `npm run start:sms` | Só fila de mensagens |
| `npm run start:voice` | Só áudios de voz |

Com PM2:

```bash
pm2 start server.js --name nsp-whatsapp -- --both
pm2 save
```

## 4) Firewall / proxy

- Libere a porta **8167** só se for usar o painel embutido do Node (admin).
- O painel do site **não precisa** expor a porta publicamente: ele fala com o MySQL.
- Recomendado: Node no mesmo servidor do MySQL/PHP.

## 5) Páginas no painel

| URL | Função |
|-----|--------|
| `/general/whatsapp_plus` | Enviar mensagens + botões |
| `/general/whatsapp_qr` | Vincular aparelho (QR / código) |
| `/general/whatsapp_voice` | WhatsApp voz |
| `/general/whatsapp_protection` | Proteção anti-ban por número |
| `/general/whatsapp_history` | Histórico SMS |
| `/general/whatsapp_voice_history` | Histórico voz |

## 6) Estabilidade de conexão

Já configurado em `server.js`:

- Keepalive Baileys a cada **20s**
- Heartbeat no MySQL a cada **45s**
- Clientes autenticados: **reconectam para sempre** (backoff até 90s)
- Logout no celular: remove sessão limpa (sem QR fantasma)
- Timeout de envio **60s** (evita matar soquete vivo)

## 7) Checklist rápido

1. `schema_wsapp.sql` aplicado  
2. `npm install` + `npm start`  
3. Abrir `/general/whatsapp_qr` e vincular  
4. Status do serviço deve ficar **Online** em WhatsApp Pro  
5. Enviar mensagem de teste  

WhatsApp legado (`whatsappnew`) permanece no menu como fallback.
