# Formulários para Gerenciamento de Trades

Criei 3 formulários PHP completos para gerenciar trades manualmente no banco de dados `trades.db`. Cada um com uma função específica.

## 📝 1. Inserir Trade Individual - `form_inserir_trade.php`

**URL:** `http://localhost/projetos/rex/form_inserir_trade.php`

### Funcionalidades:
- ✅ Formulário intuitivo para inserir 1 trade por vez
- ✅ Validação automática de todos os campos
- ✅ Cálculo automático: Preço × Quantidade = Valor
- ✅ Lista dos 10 últimos trades inseridos
- ✅ Feedback visual de sucesso/erro

### Campos obrigatórios:
| Campo | Descrição | Exemplo |
|-------|-----------|---------|
| **Data/Hora** | Timestamp do trade | 2026-07-22 15:13:24 |
| **Moeda** | Código da criptomoeda | BTC, ETH, DOGE, SPCXB |
| **Tipo** | Tipo de operação | compra_inicial, compra_balanceamento, venda_balanceamento, etc. |
| **Preço** | Preço por unidade em BRL | 125000.50 |
| **Quantidade** | Quantidade de moeda | 0.001 |
| **Valor Total** | Valor total em BRL | 125.00 |

### Validações:
- Verifica se data/hora está em formato válido
- Moeda: 2-10 caracteres alfanuméricos
- Valores numéricos > 0
- Consistência: `Preço × Quantidade` ≈ `Valor` (com tolerância de 5%)

### Como usar:
1. Preencha os campos do formulário
2. Clique em "✓ Inserir Trade"
3. Veja o confirmação de sucesso
4. O trade aparece na lista abaixo

---

## 📤 2. Importar Trades em Lote - `importar_trades_lote.php`

**URL:** `http://localhost/projetos/rex/importar_trades_lote.php`

### Funcionalidades:
- ✅ Importar múltiplos trades via arquivo CSV
- ✅ Importar múltiplos trades via arquivo JSON
- ✅ Colar dados diretamente (copy & paste)
- ✅ Validação detalhada com relatório de erros
- ✅ Processamento em transação (tudo ou nada)

### Formato CSV:
```csv
timestamp,moeda,tipo,preco,quantidade,valor
2026-07-22 15:13:24,BTC,compra_inicial,125000.50,0.001,125.00
2026-07-22 15:14:35,ETH,venda_balanceamento,3500.75,0.1,350.07
2026-07-22 15:15:10,DOGE,compra_balanceamento,0.35,100,35.00
```

### Formato JSON:
```json
[
  {
    "timestamp": "2026-07-22 15:13:24",
    "moeda": "BTC",
    "tipo": "compra",
    "preco": 125000.50,
    "quantidade": 0.001,
    "valor": 125.00
  }
]
```

### Como usar:

#### Opção 1: Upload de arquivo
1. Vá para a aba CSV ou JSON
2. Selecione o arquivo no seu computador
3. Clique em "↑ Importar CSV" ou "↑ Importar JSON"

#### Opção 2: Colar dados
1. Vá para "Colar Dados Diretamente"
2. Cole seus dados em formato CSV (um por linha)
3. Clique em "✓ Importar Dados"

### Validações:
- Formato correto (CSV com 6 colunas, JSON válido)
- Tipos válidos de operação
- Valores numéricos > 0
- Detecção de erros linha por linha

---

## 📊 3. Gerenciador de Trades - `gerenciador_trades.php`

**URL:** `http://localhost/projetos/rex/gerenciador_trades.php`

### Funcionalidades:
- ✅ Visualizar todos os trades em tabela paginada
- ✅ Filtrar por moeda e tipo de operação
- ✅ Editar dados de qualquer trade
- ✅ Deletar trades específicos
- ✅ Estatísticas: Total de trades
- ✅ Paginação: 20 trades por página

### Como usar:

#### Filtrar trades:
1. Selecione a moeda desejada (opcional)
2. Selecione o tipo de operação (opcional)
3. Clique em "🔍 Filtrar"

#### Editar um trade:
1. Localize o trade na tabela
2. Clique no botão "✏️ Editar"
3. Modifique os valores no modal
4. Clique em "✓ Salvar"

#### Deletar um trade:
1. Clique no botão "🗑️ Deletar"
2. Confirme a ação no diálogo

#### Navegar entre páginas:
1. Use os botões de paginação no rodapé da tabela
2. "« Primeira", "‹ Anterior", números, "Próxima ›", "Última »"

---

## 🗂️ Tipos de Operação

| Tipo | Descrição |
|------|-----------|
| **compra_inicial** | Compra na fase inicial de construção do portfólio 🟢 |
| **compra_balanceamento** | Compra durante rebalanceamento normal 🔵 |
| **compra_ajuste_capital** | Compra quando capital é incrementado (novo capital investido) ⬆️ |
| **venda_balanceamento** | Venda durante rebalanceamento normal 🔴 |
| **venda_ajuste_capital** | Venda quando capital é diminuído (capital retirado) ⬇️ |

---

## 📋 Estrutura do Banco de Dados

A tabela `trades` tem a seguinte estrutura:

```sql
CREATE TABLE trades (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    timestamp TEXT NOT NULL,              -- Data/hora do trade
    moeda TEXT NOT NULL,                  -- Código da moeda (BTC, ETH, etc)
    tipo TEXT NOT NULL,                   -- Tipo de operação
    preco REAL NOT NULL,                  -- Preço por unidade
    quantidade REAL NOT NULL,             -- Quantidade de moedas
    valor REAL NOT NULL,                  -- Valor total em BRL
    criado_em DATETIME DEFAULT CURRENT_TIMESTAMP  -- Data de criação do registro
)
```

---

## 🔗 Relacionamento entre Formulários

```
form_inserir_trade.php (individual)
              ↓
gerenciador_trades.php (editar/deletar)
              ↓
importar_trades_lote.php (lote)
```

---

## ⚠️ Dicas Importantes

### Validações Automáticas:
- **Data/Hora**: Formato YYYY-MM-DD HH:mm
- **Moeda**: 2-10 caracteres (aceita letras e números, converte para maiúsculas)
- **Valores**: Devem ser números > 0
- **Consistência**: Preço × Quantidade deve ser aproximadamente igual ao Valor (tolerância 5%)

### Performance:
- Lotes de até 1000 trades por vez
- Índices otimizados para queries rápidas
- Transações atômicas para integridade dos dados

### Segurança:
- Validação rigorosa de entrada
- Proteção contra SQL injection (prepared statements)
- Sanitização de dados
- Tratamento de exceções

---

## 📞 Suporte e Troubleshooting

### "Erro ao conectar SQLite"
- Verifique permissões de escrita no diretório `/rex/`
- Certifique-se que `trades.db` é acessível

### "Formato de data/hora inválido"
- Use o calendário do navegador para facilitar
- Formato aceito: `YYYY-MM-DDTHH:mm`

### "Inconsistência: Preço × Quantidade ≠ Valor"
- Use o cálculo automático que aparece durante preenchimento
- Deixe o Valor em branco e deixe o sistema calcular (se possível)

### Lote não foi importado
- Verifique se o CSV/JSON tem estrutura correta
- Veja o relatório de erros que aparece após importação
- Importe novamente apenas os trades com erro

---

## 🎯 Exemplo Prático

### Inserir um trade BTC:
1. Abrir: `form_inserir_trade.php`
2. Data/Hora: `2026-07-24 14:30`
3. Moeda: `BTC`
4. Tipo: `compra`
5. Preço: `125000.50`
6. Quantidade: `0.001`
7. Valor: `125.00` (calculado automaticamente)
8. Clicar: "✓ Inserir Trade"
9. Confirmação: "✓ Trade inserido com sucesso! (ID: 123)"

### Importar múltiplos trades:
1. Abrir: `importar_trades_lote.php`
2. Preparar dados em CSV:
   ```
   2026-07-24 14:30:00,BTC,compra,125000.50,0.001,125.00
   2026-07-24 15:45:00,ETH,venda,3500.75,0.1,350.07
   ```
3. Ir para "Colar Dados Diretamente"
4. Colar os dados
5. Clicar: "✓ Importar Dados"
6. Ver resultado: "✓ 2 trades colados e inseridos com sucesso!"

### Gerenciar trades:
1. Abrir: `gerenciador_trades.php`
2. Filtrar por moeda "BTC"
3. Ver tabela com todos os trades BTC
4. Clicar "✏️ Editar" para corrigir um valor
5. Clicar "🗑️ Deletar" para remover um trade errado

---

## 🚀 Próximos Passos

Você pode integrar estes formulários ao seu painel principal (`rex.php`) adicionando links:

```php
<a href="form_inserir_trade.php">➕ Inserir Trade</a>
<a href="importar_trades_lote.php">📤 Importar Trades</a>
<a href="gerenciador_trades.php">📊 Gerenciar Trades</a>
```

---

**Última atualização:** 2026-07-24
