# WhatsApp Bot API v2.0

## ⚠️ **IMPORTANTE - SEGURANÇA**

🔒 **NUNCA compartilhe seu token de acesso publicamente!**
- Configure o token no arquivo `.env`
- Use variáveis de ambiente na hospedagem
- Mantenha o token seguro e privado

## ✨ Novidades - QR Code via Web!

Agora você pode visualizar e escanear o QR code diretamente no navegador! 🌐

## Como usar a API

### 1. Configurar Token de Segurança
```bash
# Edite o arquivo .env
TOKEN_SENHA=SEU_TOKEN_SUPER_SECRETO_AQUI
```

### 2. Iniciar a API
```bash
npm run start:dev
```

### 3. Visualizar QR Code
Acesse no navegador: **http://localhost:3000/qr**

- 📱 QR code interativo
- ⏰ Contador de expiração
- 🔄 Auto-refresh
- 📋 Instruções de uso

### 4. Endpoints disponíveis

#### 🔐 Endpoints com autenticação

**POST /send-message**
Envia mensagem para um grupo

```bash
curl -X POST http://localhost:3000/send-message \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Content-Type: application/json" \
  -d '{
    "grupo": "SQL QUERY",
    "mensagem": "Sua mensagem aqui"
  }'
```

#### 🔄 **NOVO: Sistema de Retry Inteligente**

A API agora possui um sistema de retry que tenta enviar a mensagem por até **1 minuto** quando o WhatsApp não está conectado:

- ⏱️ **Tempo limite**: 60 segundos
- 🔄 **Intervalo entre tentativas**: 2 segundos  
- 📊 **Tentativas automáticas**: ~30 tentativas
- 🎯 **Resultado**: Maior taxa de sucesso

**Exemplo de resposta com retry:**
```json
{
  "success": true,
  "message": "Conteúdo enviado com sucesso",
  "grupo": {
    "nome": "SQL QUERY",
    "id": "120363176439998785@g.us"
  },
  "mensagemEnviada": "Sua mensagem aqui",
  "tentativasRealizadas": 5,
  "timestamp": "2025-07-17T00:30:00.000Z"
}
```

**Erro após 1 minuto:**
```json
{
  "error": "WhatsApp não conectado",
  "message": "O bot não conseguiu se conectar ao WhatsApp após 1 minuto de tentativas. Tente novamente mais tarde.",
  "tentativas": 30,
  "tempoEsgotado": "60 segundos"
}
```

**GET /groups**
Lista todos os grupos
```bash
curl -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  http://localhost:3000/groups
```

**POST /restart**
Reinicia a conexão WhatsApp
```bash
curl -X POST http://localhost:3000/restart \
  -H "Authorization: Bearer SEU_TOKEN_AQUI"
```

#### 🌐 Endpoints públicos (sem auth)

**GET /qr**
Visualiza QR Code no navegador
```
http://localhost:3000/qr
```

**GET /qr-image**
Baixa imagem do QR Code
```
http://localhost:3000/qr-image
```

**GET /status**
Verifica status da conexão
```bash
curl http://localhost:3000/status
```

**GET /**
Documentação da API
```
http://localhost:3000/
```

## 🚀 Para Hospedagem

### Vantagens para ambiente de produção:

1. **QR Code via Web**: Não precisa mais de acesso ao terminal
2. **Auto-refresh**: Página atualiza automaticamente
3. **Imagem salva**: QR fica disponível em `/public/qrcode.png`
4. **Monitoramento**: Status em tempo real da conexão
5. **Reinicialização**: Endpoint para restart remoto

### Exemplo de uso em produção:

1. **Deploy da aplicação**
2. **Acesse**: `https://seudominio.com/qr`
3. **Escaneie o QR** com o WhatsApp
4. **Use a API**: `https://seudominio.com/send-message`

## 📱 Como conectar o WhatsApp

1. Acesse: `http://localhost:3000/qr`
2. Abra WhatsApp no celular
3. Vá em: **Mais opções > Aparelhos conectados**
4. Toque: **Conectar um aparelho**
5. Escaneie o QR code na tela

## 🔧 Recursos avançados

### Status detalhado:
```json
{
  "success": true,
  "whatsappConectado": true,
  "totalGrupos": 5,
  "qrCodeDisponivel": false,
  "qrCodeExpirado": false,
  "timestamp": "2025-07-16T19:30:00.000Z"
}
```

### Restart remoto:
```bash
curl -X POST http://localhost:3000/restart \
  -H "Authorization: Bearer @@EQTL2025"
```
