🔄 Sistema de Auto-Reconexão WhatsApp
🎯 Principais Benefícios
- ✅ Preserva Dados: Conexões não são mais apagadas do banco
- ✅ Reconexão Inteligente: Sistema tenta reconectar automaticamente
- ✅ Controle Granular: Configure tentativas e comportamento
- ✅ Sessões Limpas: Arquivos Baileys gerenciados automaticamente
- ✅ Frontend Flexível: Total controle sobre quando conectar
🆕 Novos Endpoints
POST
/api/whatsapp/{id}/connect
Inicia conexão gerando arquivos Baileys frescos e QR code
POST
/api/whatsapp/{id}/disconnect
Desconecta, limpa arquivos e desabilita auto-reconexão
POST
/api/whatsapp/{id}/auto-reconnect
Habilita/desabilita reconexão automática com configurações
📊 Novos Campos de Resposta
{
"auto_reconnect": true,
"reconnect_attempts": 0,
"max_reconnect_attempts": 5,
"last_reconnect_attempt": "2024-01-15T10:30:00Z",
"session_data_cleared_at": "2024-01-15T11:00:00Z",
"can_reconnect": true
}
🔄 Lógica de Funcionamento
- Conectar Manual: auto_reconnect = true
- Desconectar Manual: auto_reconnect = false
- Falha Automática: Tenta reconectar até limite
- Limite Excedido: auto_reconnect = false
⚠️ Mudança Importante para o Frontend
O endpoint antigo POST /api/whatsapp/connect agora apenas cria a conexão no banco, mas não gera arquivos Baileys.
Use POST /api/whatsapp/{id}/connect para realmente conectar e gerar QR code.
🎨 Exemplo de Integração Frontend
// 1. Criar conexão (apenas registro no banco)
const response = await fetch('/api/whatsapp/connect', {
method: 'POST',
body: JSON.stringify({ name: 'WhatsApp Vendas' })
});
const connection = await response.json();
// 2. Conectar de verdade (gera QR)
await fetch(`/api/whatsapp/${connection.id}/connect`, {
method: 'POST'
});
// 3. Escutar QR code via Socket.IO
socket.on('qr', (data) => {
if (data.sessionId === connection.id) {
displayQRCode(data.qr);
}
});
// 4. Desconectar quando necessário
await fetch(`/api/whatsapp/${connection.id}/disconnect`, {
method: 'POST'
});
📚 Links Úteis
🚀 Sistema mais robusto e user-friendly!