# 📡 Enviar Dados para a API

## Usando PowerShell (Windows)

```powershell
# Enviar arquivo veiculos.json completo
$json = Get-Content veiculos.json -Raw
Invoke-RestMethod -Uri "http://localhost:3000/api/veiculos" -Method Post -Body $json -ContentType "application/json"
```

## Usando cURL (PowerShell)

```powershell
curl -X POST http://localhost:3000/api/veiculos `
  -H "Content-Type: application/json" `
  -d "@veiculos.json"
```

## Usando cURL (CMD)

```cmd
curl -X POST http://localhost:3000/api/veiculos ^
  -H "Content-Type: application/json" ^
  -d @veiculos.json
```

## Exemplo de Envio Manual (JSON único)

```bash
curl -X POST http://localhost:3000/api/veiculos \
  -H "Content-Type: application/json" \
  -d '{
    "timestamp": "2026-02-20T12:18:58.050732",
    "total_veiculos": 2,
    "veiculos": [
      {
        "placa": "ABC1234",
        "identificacao_completa": "TESTE ABC1234",
        "data_hora": "20/02/2026 12:17:06",
        "icone": "/system/images/icons/key_ok.gif",
        "velocidade": "0",
        "status": "Posição",
        "endereco": "São Paulo - SP",
        "latitude": -23.550520,
        "longitude": -46.633308,
        "grupos": ["TESTE", "GERAL"],
        "modelo_rastreador": "RST-MINIv5",
        "id_sistema": "1036",
        "operadora": "Vivo"
      }
    ]
  }'
```

## Testando a API

### 1. Obter todos os veículos

```bash
curl http://localhost:3000/api/veiculos
```

### 2. Buscar veículo por placa

```bash
curl http://localhost:3000/api/veiculos/ABC1234
```

### 3. Enviar dados (POST)

```bash
curl -X POST http://localhost:3000/api/veiculos \
  -H "Content-Type: application/json" \
  -d @veiculos.json
```

## 🔄 Automatização - Enviar dados periodicamente

### Script PowerShell (salvar como `enviar-dados.ps1`)

```powershell
# Configurações
$apiUrl = "http://localhost:3000/api/veiculos"
$jsonFile = "veiculos.json"

# Loop infinito - envia a cada 5 minutos
while ($true) {
    Write-Host "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - Enviando dados..." -ForegroundColor Cyan

    try {
        $json = Get-Content $jsonFile -Raw
        $response = Invoke-RestMethod -Uri $apiUrl -Method Post -Body $json -ContentType "application/json"

        if ($response.sucesso) {
            Write-Host "✓ Sucesso! $($response.total) veículos atualizados" -ForegroundColor Green
        }
    }
    catch {
        Write-Host "✗ Erro: $_" -ForegroundColor Red
    }

    # Aguardar 5 minutos (300 segundos)
    Write-Host "Aguardando 5 minutos..."
    Start-Sleep -Seconds 300
}
```

Executar:

```powershell
.\enviar-dados.ps1
```

## 📝 Formato dos Dados

A API aceita o seguinte formato JSON:

```json
{
  "timestamp": "2026-02-20T12:18:58.050732",
  "total_veiculos": 55,
  "veiculos": [
    {
      "placa": "SAA6B77",
      "identificacao_completa": "APARECIDA-GO SAA6B77",
      "data_hora": "20/02/2026 12:17:06",
      "icone": "/system/images/icons/key_ok.gif",
      "velocidade": "0",
      "status": "Posição",
      "endereco": "Pilar De Goias - Go",
      "latitude": -14.32743,
      "longitude": -49.42241,
      "grupos": ["CONTROL CONTRUÇÕES-GOIÁS", "GERAL"],
      "modelo_rastreador": "RST-MINIv5",
      "id_sistema": "1036",
      "operadora": "Eseye"
    }
  ]
}
```

### Campos Obrigatórios:

- `placa` (string, único)
- `data_hora` (string, formato: DD/MM/YYYY HH:MM:SS)
- `latitude` (decimal)
- `longitude` (decimal)

### Campos Opcionais:

- `identificacao_completa`
- `icone`
- `velocidade`
- `status`
- `endereco`
- `grupos` (array de strings)
- `modelo_rastreador`
- `id_sistema`
- `operadora`

## ⚠️ Notas Importantes

1. **Formato de Data**: Aceita formato brasileiro (DD/MM/YYYY HH:MM:SS) ou ISO (YYYY-MM-DDTHH:MM:SS.000Z)
2. **Placa Única**: Se enviar uma placa já existente, os dados serão atualizados
3. **Grupos**: Pode ser array ou string (será convertido automaticamente)
4. **Coordenadas**: Latitude e Longitude devem ser números decimais válidos
