309 lines
6.4 KiB
Markdown
309 lines
6.4 KiB
Markdown
# 🚀 Enviar Alertas via API (Solução Simples)
|
|
|
|
## ✅ Problema Resolvido!
|
|
|
|
Adicionei **2 rotas API** no servidor para enviar alertas sem precisar configurar .env separado.
|
|
|
|
---
|
|
|
|
## 📋 Pré-requisitos
|
|
|
|
1. Servidor rodando: `node server-supabase.js`
|
|
2. Configurações no painel admin:
|
|
- Evolution API (URL, Instância, API Key)
|
|
- Mercado Pago (Access Token)
|
|
- Alertas WhatsApp (toggles ATIVOS)
|
|
|
|
---
|
|
|
|
## 🎯 Opção 1: Enviar Alertas Atrasados (AGORA)
|
|
|
|
**Para resolver a venda de 20/10 com vencimento em 24/10:**
|
|
|
|
### Via curl (terminal):
|
|
|
|
```bash
|
|
curl -X POST http://localhost:5000/api/alertas/enviar-atrasados \
|
|
-H "Content-Type: application/json"
|
|
```
|
|
|
|
### Via navegador:
|
|
|
|
Abra uma nova aba e execute no Console (F12):
|
|
|
|
```javascript
|
|
fetch('http://localhost:5000/api/alertas/enviar-atrasados', {
|
|
method: 'POST'
|
|
})
|
|
.then(r => r.json())
|
|
.then(data => console.log(data));
|
|
```
|
|
|
|
### O que faz:
|
|
|
|
- ✅ Busca parcelas vencidas ou vencendo hoje
|
|
- ✅ Gera PIX para cada uma
|
|
- ✅ Envia WhatsApp com PIX
|
|
- ✅ Retorna resumo (quantos enviados, erros)
|
|
|
|
---
|
|
|
|
## 🕐 Opção 2: Teste do Sistema Automático
|
|
|
|
**Para testar se o sistema funcionaria hoje (sem enviar de verdade ainda):**
|
|
|
|
### Via curl:
|
|
|
|
```bash
|
|
curl -X POST http://localhost:5000/api/alertas/enviar-vencimentos \
|
|
-H "Content-Type: application/json"
|
|
```
|
|
|
|
### Via navegador (Console F12):
|
|
|
|
```javascript
|
|
fetch('http://localhost:5000/api/alertas/enviar-vencimentos', {
|
|
method: 'POST'
|
|
})
|
|
.then(r => r.json())
|
|
.then(data => {
|
|
console.log('📊 RESULTADO:');
|
|
console.log(`✅ Enviados: ${data.alertasEnviados}`);
|
|
console.log(`❌ Erros: ${data.erros}`);
|
|
console.log('\n📦 Parcelas:');
|
|
console.table(data.parcelas);
|
|
});
|
|
```
|
|
|
|
### O que faz:
|
|
|
|
- Verifica parcelas pendentes
|
|
- Calcula dias para vencimento
|
|
- Envia alertas conforme configuração:
|
|
- 3 dias antes → Primeiro alerta
|
|
- No dia → Segundo alerta + PIX
|
|
- 3 dias após → Alerta pós-vencimento
|
|
- Retorna logs detalhados
|
|
|
|
---
|
|
|
|
## 📊 Resposta Esperada
|
|
|
|
```json
|
|
{
|
|
"success": true,
|
|
"alertasEnviados": 2,
|
|
"erros": 0,
|
|
"parcelas": [
|
|
{
|
|
"cliente": "João Silva",
|
|
"valor": "R$ 150,00",
|
|
"vencimento": "24/10/2025",
|
|
"tipo": "segundo_alerta",
|
|
"status": "enviado"
|
|
},
|
|
{
|
|
"cliente": "Maria Santos",
|
|
"valor": "R$ 200,00",
|
|
"vencimento": "27/10/2025",
|
|
"tipo": "primeiro_alerta",
|
|
"status": "enviado"
|
|
}
|
|
],
|
|
"logs": [
|
|
"📋 Configurações: Primeiro=3d (ON), Segundo=0d (ON), Pós=3d (ON)",
|
|
"📦 15 parcela(s) pendente(s)",
|
|
"✅ segundo_alerta enviado para João Silva",
|
|
"✅ primeiro_alerta enviado para Maria Santos",
|
|
"📊 RESUMO: 2 enviados, 0 erros"
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🔥 AÇÃO IMEDIATA (Para Venda 20/10)
|
|
|
|
**Execute AGORA:**
|
|
|
|
```bash
|
|
curl -X POST http://localhost:5000/api/alertas/enviar-atrasados
|
|
```
|
|
|
|
Ou no navegador:
|
|
1. Abra `http://localhost:5000`
|
|
2. Pressione F12 (Console)
|
|
3. Cole e execute:
|
|
|
|
```javascript
|
|
fetch('/api/alertas/enviar-atrasados', {method: 'POST'})
|
|
.then(r => r.json())
|
|
.then(d => console.log('Resultado:', d));
|
|
```
|
|
|
|
**Isso enviará imediatamente o alerta + PIX para a parcela vencendo hoje!**
|
|
|
|
---
|
|
|
|
## 🤖 Automatização com Cron
|
|
|
|
Para executar automaticamente às 09:00 todos os dias:
|
|
|
|
### Editar cron:
|
|
|
|
```bash
|
|
crontab -e
|
|
```
|
|
|
|
### Adicionar linha:
|
|
|
|
```cron
|
|
0 12 * * * curl -X POST http://localhost:5000/api/alertas/enviar-vencimentos -H "Content-Type: application/json" >> /home/tiago/Downloads/app_estoque_v1.0.0/logs/alertas-api.log 2>&1
|
|
```
|
|
|
|
**Nota:** `0 12` em UTC = 09:00 em Brasília (UTC-3)
|
|
|
|
### Criar diretório de logs:
|
|
|
|
```bash
|
|
mkdir -p /home/tiago/Downloads/app_estoque_v1.0.0/logs
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ Verificar se Funcionou
|
|
|
|
### 1. Ver logs do servidor:
|
|
|
|
O servidor mostrará no terminal:
|
|
|
|
```
|
|
🔔 Iniciando envio de alertas de vencimento...
|
|
📋 Configurações: Primeiro=3d (ON), Segundo=0d (ON), Pós=3d (ON)
|
|
📦 15 parcela(s) pendente(s)
|
|
✅ segundo_alerta enviado para João Silva
|
|
📊 RESUMO: 2 enviados, 0 erros
|
|
```
|
|
|
|
### 2. Verificar no banco:
|
|
|
|
```sql
|
|
SELECT * FROM mensagens_whatsapp
|
|
ORDER BY created_at DESC
|
|
LIMIT 10;
|
|
```
|
|
|
|
### 3. Verificar PIX gerado:
|
|
|
|
```sql
|
|
SELECT numero_parcela, valor, pix_qr_code
|
|
FROM venda_parcelas
|
|
WHERE pix_qr_code IS NOT NULL
|
|
ORDER BY created_at DESC;
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Vantagens desta Solução
|
|
|
|
| Aspecto | Benefício |
|
|
|---------|-----------|
|
|
| **Sem .env extra** | Usa configurações do servidor |
|
|
| **Sem permissões** | Não precisa chmod |
|
|
| **Fácil de testar** | Um curl e pronto |
|
|
| **Logs imediatos** | Vê resultado na hora |
|
|
| **Cron simples** | Uma linha apenas |
|
|
| **Debug fácil** | Logs no terminal do servidor |
|
|
|
|
---
|
|
|
|
## 🔍 Troubleshooting
|
|
|
|
### Erro: "Cannot POST /api/alertas/..."
|
|
|
|
**Causa:** Servidor não está rodando
|
|
**Solução:**
|
|
```bash
|
|
node server-supabase.js
|
|
```
|
|
|
|
### Erro: "Evolution API não responde"
|
|
|
|
**Causa:** Evolution não configurada
|
|
**Solução:** Painel Admin → Configurações → Evolution API
|
|
|
|
### Erro: "Nenhuma parcela encontrada"
|
|
|
|
**Causa:** Não há parcelas pendentes hoje
|
|
**Solução:** Isso é normal! Sistema está ok.
|
|
|
|
### Alertas não chegam
|
|
|
|
**Verificar:**
|
|
1. Evolution API online?
|
|
2. Instância conectada?
|
|
3. Cliente tem WhatsApp?
|
|
4. Número correto (apenas dígitos)?
|
|
|
|
---
|
|
|
|
## 📅 Cronograma de Uso
|
|
|
|
### Hoje (24/10):
|
|
```bash
|
|
# Resolver venda de 20/10
|
|
curl -X POST http://localhost:5000/api/alertas/enviar-atrasados
|
|
```
|
|
|
|
### Configurar automação:
|
|
```bash
|
|
# Adicionar ao cron
|
|
crontab -e
|
|
```
|
|
|
|
### Amanhã (25/10) às 09:01:
|
|
```bash
|
|
# Verificar se executou
|
|
tail logs/alertas-api.log
|
|
```
|
|
|
|
---
|
|
|
|
## 💡 Dicas
|
|
|
|
### Teste sem enviar:
|
|
|
|
Se quiser só ver quais alertas seriam enviados:
|
|
|
|
```javascript
|
|
// No console do navegador
|
|
fetch('/api/alertas/enviar-vencimentos', {method: 'POST'})
|
|
.then(r => r.json())
|
|
.then(d => {
|
|
console.log(`Seriam enviados ${d.alertasEnviados} alertas`);
|
|
console.table(d.parcelas);
|
|
});
|
|
```
|
|
|
|
### Forçar envio para uma parcela específica:
|
|
|
|
Você pode criar uma rota customizada ou usar o sistema de vendas → Parcelas → Botão "PIX" + Chat WhatsApp.
|
|
|
|
---
|
|
|
|
## ✅ Checklist Final
|
|
|
|
- [ ] Servidor rodando (`node server-supabase.js`)
|
|
- [ ] Evolution API configurada no admin
|
|
- [ ] Mercado Pago configurado no admin
|
|
- [ ] Alertas ATIVOS no admin
|
|
- [ ] Executou `/api/alertas/enviar-atrasados` (resolveu venda 20/10)
|
|
- [ ] Adicionou ao cron (automação futura)
|
|
- [ ] Testou e viu resultado no console
|
|
|
|
---
|
|
|
|
**🎉 Sistema pronto! Muito mais simples que scripts separados!** ✨
|
|
|
|
**Qualquer dúvida, os logs aparecem no terminal do servidor.** 📊
|