# 🚨 DIAGNÓSTICO URGENTE - Backup Não Rodou

## Problema

Horário configurado, mas nem logs foram gerados. Isso significa que o scheduler NÃO está executando.

## ✅ Executar NO SERVIDOR (em ordem)

### 1. Verificar se o Cron Está Configurado

```bash
# Ver crontab
crontab -l

# Deve ter esta linha:
# * * * * * cd /var/www/gestorstream/backend && /usr/bin/php artisan schedule:run >> ...
```

**Se NÃO aparecer nada ou não tiver a linha:**

```bash
# Editar crontab
crontab -e

# Adicionar esta linha (COPIAR E COLAR):
* * * * * cd /var/www/gestorstream/backend && /usr/bin/php artisan schedule:run >> /var/www/gestorstream/backend/storage/logs/scheduler.log 2>&1

# Salvar e sair (Ctrl+O, Enter, Ctrl+X no nano)
```

### 2. Verificar se o Scheduler Está Rodando

```bash
cd /var/www/gestorstream/backend

# Executar scheduler manualmente
php artisan schedule:run -v
```

**O que você DEVE ver:**
```
Running scheduled command: Closure
Running scheduled command: ...
```

**Se aparecer "No scheduled commands are ready to run":**
- Isso é normal se não estiver no horário configurado
- MAS você deve ver a lista de comandos agendados

### 3. Ver Lista de Comandos Agendados

```bash
php artisan schedule:list
```

**Você DEVE ver:**
- `auto-database-backup` na lista
- Com a descrição do quando vai rodar

**Se NÃO aparecer:**

```bash
# Limpar TODOS os caches
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear

# Tentar novamente
php artisan schedule:list
```

### 4. Verificar Configurações de Backup

```bash
php artisan tinker
```

Dentro do tinker, executar:

```php
\App\Models\SystemSetting::get('auto_backup_enabled')
// Deve retornar: true

\App\Models\SystemSetting::get('auto_backup_time')
// Deve retornar: "HH:MM" (o horário que você configurou)

\App\Models\SystemSetting::get('auto_backup_frequency')
// Deve retornar: "daily"

exit
```

**Se algum retornar `null` ou `false`:**
- Ir no painel web
- Configurações > Backup
- Habilitar o backup novamente

### 5. Testar Backup Manual

```bash
# Executar backup manualmente
php artisan database:auto-backup

# Ver se funcionou
ls -lh storage/app/backups/
```

**Se o backup manual funcionar:**
- ✅ O problema é só o agendamento
- ❌ Provavelmente falta configurar o cron

**Se o backup manual falhar:**
- ❌ Há um problema no comando em si
- Copiar e colar o erro aqui

### 6. Verificar Logs do Cron

```bash
# Ver se o cron está executando
grep CRON /var/log/syslog | tail -20

# Ou (dependendo da distribuição)
grep CRON /var/log/cron | tail -20
```

**Você DEVE ver** linhas como:
```
Jan 12 14:30:01 CRON[12345]: (root) CMD (cd /var/www/gestorstream/backend && /usr/bin/php artisan schedule:run >> ...)
```

**Se NÃO ver nada:**
- ❌ O cron não está configurado
- Voltar ao passo 1

### 7. Monitorar Scheduler em Tempo Real

```bash
# Deixar isso rodando e aguardar 1-2 minutos
tail -f storage/logs/scheduler.log
```

**Você DEVE ver** algo a cada minuto.

**Se NÃO aparecer nada após 2 minutos:**
- ❌ Cron não está configurado ou não está rodando
- Execute manualmente: `php artisan schedule:run -v`

---

## 🎯 Teste Rápido (EXECUTAR AGORA)

```bash
cd /var/www/gestorstream/backend

# 1. Limpar cache
php artisan config:clear && php artisan cache:clear

# 2. Ver se o comando aparece
php artisan schedule:list | grep backup

# 3. Executar scheduler manualmente
php artisan schedule:run -v

# 4. Ver crontab
crontab -l | grep schedule

# 5. Se crontab estiver vazio, configurar:
# crontab -e
# Adicionar: * * * * * cd /var/www/gestorstream/backend && /usr/bin/php artisan schedule:run >> /var/www/gestorstream/backend/storage/logs/scheduler.log 2>&1
```

---

## 🔍 Qual é o Resultado?

### Cenário A: `crontab -l` está VAZIO ou sem a linha do schedule:run

**SOLUÇÃO:**
```bash
crontab -e

# Adicionar esta linha:
* * * * * cd /var/www/gestorstream/backend && /usr/bin/php artisan schedule:run >> /var/www/gestorstream/backend/storage/logs/scheduler.log 2>&1

# Salvar e sair
```

Aguardar 1-2 minutos e verificar:
```bash
tail -f storage/logs/scheduler.log
```

### Cenário B: `schedule:list` NÃO mostra o backup

**SOLUÇÃO:**
```bash
# Limpar TUDO
php artisan config:clear
php artisan cache:clear
php artisan optimize:clear

# Verificar novamente
php artisan schedule:list
```

### Cenário C: Backup manual funciona, mas automático não

**SOLUÇÃO:**
- Confirmar que cron está configurado (Cenário A)
- Confirmar que horário está correto no painel
- Monitorar logs: `tail -f storage/logs/laravel.log | grep AutoDatabaseBackup`

### Cenário D: Nada funciona

**SOLUÇÃO:**
Copiar e colar aqui os resultados de:

```bash
# 1. Crontab
crontab -l

# 2. Schedule list
php artisan schedule:list

# 3. Configurações
php artisan tinker
\App\Models\SystemSetting::get('auto_backup_enabled')
\App\Models\SystemSetting::get('auto_backup_time')
exit

# 4. Executar manualmente
php artisan database:auto-backup
```

---

## ⚡ SOLUÇÃO MAIS PROVÁVEL

**90% dos casos:** Cron não está configurado

```bash
crontab -e

# Adicionar:
* * * * * cd /var/www/gestorstream/backend && /usr/bin/php artisan schedule:run >> /var/www/gestorstream/backend/storage/logs/scheduler.log 2>&1

# Salvar (Ctrl+O, Enter, Ctrl+X)

# Verificar que foi salvo:
crontab -l

# Monitorar (deve começar a aparecer logs a cada minuto):
tail -f storage/logs/scheduler.log
```

---

**EXECUTE OS COMANDOS ACIMA E ME DIGA O RESULTADO!** 🚀
