# 🚀 Rebuild Frontend - Correção URGENTE

## 🐛 Problema

O erro persiste porque o **frontend compilado é a versão antiga**. O backend foi corrigido, mas o JavaScript no navegador ainda é o código antigo.

**Evidência:**
- ✅ Backend retorna: `{"data":[]}` (formato correto)
- ❌ Frontend ainda usa: `SubscriptionPage-DM_Q6NAh.js` (arquivo antigo)

---

## 🚀 Solução: Recompilar o Frontend

Execute estes comandos no servidor:

```bash
cd /var/www/gestorstream

# Dar permissão ao script
chmod +x rebuild_frontend.sh

# Executar rebuild
./rebuild_frontend.sh
```

O script irá:
1. ✅ Atualizar código do Git
2. ✅ Instalar dependências do Node.js
3. ✅ Compilar o frontend (npm run build)
4. ✅ Gerar pasta `dist/` com arquivos atualizados

---

## 📦 Deploy dos Arquivos Compilados

Após o build, copie os arquivos para o servidor web:

### Descobrir onde está o frontend atual:

```bash
# Verificar configuração do nginx
cat /etc/nginx/sites-available/gestor.jf.eng.br | grep root

# OU verificar configuração do Apache
cat /etc/apache2/sites-available/gestor.jf.eng.br.conf | grep DocumentRoot
```

### Copiar arquivos:

```bash
# Exemplo 1: Se o root for /var/www/html
cd /var/www/gestorstream/frontend
sudo cp -r dist/* /var/www/html/

# Exemplo 2: Se for um diretório específico
sudo cp -r dist/* /var/www/gestor.jf.eng.br/public/

# Ajustar permissões
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
```

---

## 🧪 Testar

1. **Limpar cache do navegador:**
   - Chrome/Edge: `Ctrl + Shift + R` (Windows/Linux) ou `Cmd + Shift + R` (Mac)
   - Firefox: `Ctrl + F5`

2. **Acessar a página:**
   ```
   https://gestor.jf.eng.br/subscription
   ```

3. **Verificar no console (F12):**
   - ✅ NÃO deve aparecer erro `o.map is not a function`
   - ✅ Deve aparecer: `[API] Response success: /payments Status: 200`
   - ✅ Página carrega normalmente (mesmo que sem pagamentos)

---

## 🔍 Se o Erro Persistir

### 1. Verificar se os arquivos foram copiados:

```bash
# Verificar data de modificação dos arquivos
ls -lh /var/www/html/*.js
# Os arquivos devem ter a data/hora recente
```

### 2. Verificar nome do arquivo JS:

No navegador, abra DevTools (F12) > Network > Recarregue (F5)

Procure por arquivos `.js` sendo carregados. O nome deve ser diferente de `SubscriptionPage-DM_Q6NAh.js`.

### 3. Limpar cache do Nginx (se aplicável):

```bash
# Se usar cache do nginx
sudo nginx -s reload
```

### 4. Forçar recompilação completa:

```bash
cd /var/www/gestorstream/frontend

# Deletar node_modules e reinstalar
rm -rf node_modules package-lock.json
npm install

# Deletar dist e recompilar
rm -rf dist
npm run build

# Copiar novamente
sudo cp -r dist/* /var/www/html/
```

---

## ⚡ Solução Rápida (Sem Recompilar)

Se não conseguir fazer o build no servidor, pode fazer no seu PC local:

### No seu PC (Windows):

```bash
# Clone o projeto (se ainda não tiver)
git clone https://github.com/seu-usuario/gestorstream.git
cd gestorstream/frontend

# Instalar dependências
npm install

# Build
npm run build

# Compactar a pasta dist
tar -czf dist.tar.gz dist/
```

### Enviar para o servidor:

```bash
# Via SCP
scp dist.tar.gz root@gestor.jf.eng.br:/tmp/

# No servidor
cd /tmp
tar -xzf dist.tar.gz
sudo cp -r dist/* /var/www/html/
sudo chown -R www-data:www-data /var/www/html/
```

---

## 📊 Verificação Final

Depois de copiar os arquivos, verifique:

### 1. API funcionando:
```bash
curl -H "Authorization: Bearer SEU_TOKEN" \
     -H "Accept: application/json" \
     https://gestor.jf.eng.br/api/v1/payments
```

**Deve retornar:** `{"data":[]}`

### 2. Frontend funcionando:
- Acesse: `https://gestor.jf.eng.br/subscription`
- ✅ Página carrega sem erros
- ✅ Mostra mensagem "Nenhum pagamento encontrado" (se não houver pagamentos)
- ✅ Console não mostra erro `o.map is not a function`

---

## 🎯 Resumo dos Comandos

```bash
# 1. Rebuild do frontend
cd /var/www/gestorstream
chmod +x rebuild_frontend.sh
./rebuild_frontend.sh

# 2. Copiar para servidor web (ajuste o caminho)
cd frontend
sudo cp -r dist/* /var/www/html/
sudo chown -R www-data:www-data /var/www/html/

# 3. Limpar cache (se usar nginx)
sudo nginx -s reload

# 4. Testar no navegador (limpar cache: Ctrl+Shift+R)
# Acessar: https://gestor.jf.eng.br/subscription
```

---

## 📝 Nota sobre "data vazio"

O retorno `{"data":[]}` é **normal** se o usuário não tiver pagamentos ainda. Isso significa:
- ✅ API funcionando corretamente
- ✅ Formato correto (`{"data": [...]}`)
- ✅ Array vazio (usuário sem pagamentos)

Quando houver pagamentos, retornará:
```json
{
  "data": [
    {"id": 1, "amount": 100, "status": "approved", ...}
  ]
}
```

---

**Execute o rebuild e me confirme o resultado!** 🚀
