# 🚀 Correção URGENTE - Erro 500 + Histórico

## 🔴 Problema Identificado

### 1. Erro 500 ao Fazer Upgrade/Downgrade

**Causa:** Código tentava salvar em coluna `meta` que não existe na tabela `subscriptions`.

**Solução:** Modificado para usar coluna `admin_notes` (JSON).

### 2. Histórico de Pagamentos Não Aparece

**Possível causa:** Frontend não está recebendo ou processando dados corretamente.

**Solução:** Adicionado logs de debug para investigar.

---

## 🚀 Execute NO SERVIDOR Agora

```bash
cd /var/www/gestorstream
chmod +x fix_meta_column_error.sh
./fix_meta_column_error.sh
```

**Este script:**
1. ✅ Atualiza código
2. ✅ Limpa cache
3. ✅ Verifica coluna meta
4. ✅ Recompila frontend com logs
5. ✅ Recarrega nginx

---

## 🧪 Teste 1: Upgrade/Downgrade

Após executar o script:

1. Acesse `/subscription`
2. Tente fazer upgrade ou downgrade
3. **Deve funcionar sem erro 500** ✅

Se der erro, veja os logs:
```bash
tail -50 /var/www/gestorstream/backend/storage/logs/laravel.log
```

---

## 🧪 Teste 2: Histórico de Pagamentos

### No Navegador:

1. Abra DevTools (F12) > Console
2. Acesse `/subscription`
3. Procure por logs:

```
[PaymentHistory] Fetching payments...
[PaymentHistory] Response: {...}
[PaymentHistory] Response.data: [...]
[PaymentHistory] Payments array: [...]
[PaymentHistory] Payments count: X
```

### Cenários:

**A) Se aparecer `count: 0`:**
- Usuário não tem pagamentos ainda
- Deve mostrar "Nenhum pagamento encontrado" ✅

**B) Se aparecer `count: X` (X > 0):**
- Deve mostrar lista de pagamentos ✅

**C) Se aparecer erro:**
- Compartilhe o erro para investigar

### Teste Manual da API:

```bash
# No servidor
cd /var/www/gestorstream/backend
php artisan tinker

# No tinker:
>>> $user = \App\Models\User::first();
>>> $token = $user->createToken('test')->plainTextToken;
>>> echo $token;
# Copie o token

# Em outro terminal:
curl -H "Authorization: Bearer SEU_TOKEN" \
     -H "Accept: application/json" \
     https://gestor.jf.eng.br/api/v1/payments

# Deve retornar:
{"data": [...]}
```

---

## 📋 Mudanças Aplicadas

### Backend (2 arquivos):

1. **`app/Services/ProrationService.php`**
   - ❌ `$subscription->meta` 
   - ✅ `$subscription->admin_notes` (JSON)

2. **`app/Http/Controllers/Api/SubscriptionController.php`**
   - ❌ `'meta' => ...`
   - ✅ `'admin_notes' => json_encode(...)`

### Frontend (1 arquivo):

1. **`src/components/PaymentHistorySection.tsx`**
   - ✅ Adicionado logs de debug detalhados

---

## 🔍 Investigação: Por que histórico não aparece?

### Possíveis causas:

1. **API retorna vazio** - Usuário não tem pagamentos
2. **API retorna erro** - Problema no backend
3. **Frontend não renderiza** - Problema no componente
4. **Componente não carrega** - Problema de importação

### Como descobrir:

```javascript
// Console do navegador deve mostrar:
[PaymentHistory] Fetching payments...
[PaymentHistory] Response: { data: [...] }
[PaymentHistory] Payments count: X

// Se não aparecer nada:
// - Componente não está sendo montado

// Se aparecer erro:
// - API está falhando

// Se aparecer count: 0:
// - Usuário não tem pagamentos (normal)
```

---

## ✅ Checklist Pós-Deploy

- [ ] Script executado
- [ ] Cache limpo
- [ ] Frontend recompilado
- [ ] Teste upgrade - funciona?
- [ ] Teste downgrade - funciona?
- [ ] Console mostra logs de PaymentHistory?
- [ ] Histórico aparece (ou mensagem "Nenhum pagamento")?

---

## 📝 Próximos Passos (Após corrigir isso)

1. Sistema de notificações de vencimento
2. Botão "Renovar Assinatura" no frontend
3. Modal com QR Code de renovação
4. Mostrar dias restantes até vencimento

---

**Execute o script e me envie:**
1. Output do script
2. Screenshot ou texto dos logs do console (F12)
3. Se upgrade/downgrade funciona agora
4. Se o histórico aparece