<?php
// Teste direto da API atualizar-posicao
header('Content-Type: text/plain; charset=utf-8');

echo "=== TESTE DIRETO DA API atualizar-posicao ===\n\n";

try {
    // 1. Testar a API atualizar-posicao
    echo "1. 🌐 TESTANDO API atualizar-posicao:\n";
    
    $dados_teste = [
        'acao' => 'atualizar-posicao',
        'viagem_id' => 267,
        'latitude' => 37.4219983,
        'longitude' => -122.084,
        'velocidade' => 0.0,
        'precisao' => 5.0,
        'altitude' => 5.0,
        'provider' => 'fused',
        'timestamp' => time() * 1000
    ];
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dados_teste)); // ✅ ENVIAR COMO JSON
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json' // ✅ HEADER JSON
    ]);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);
    curl_close($ch);
    
    echo "   - HTTP Code: " . $httpCode . "\n";
    echo "   - Response: " . $response . "\n";
    
    if ($error) {
        echo "   - Curl Error: " . $error . "\n";
    }
    
    echo "\n";
    
    // 2. Verificar se foi salvo no banco
    echo "2. 🔍 VERIFICANDO SE FOI SALVO NO BANCO:\n";
    
    // Conectar ao banco
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);
    
    // Verificar pontos na tabela rastreamento_tempo_real
    $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = 267");
    $stmt->execute();
    $total = $stmt->fetch();
    
    echo "   - Total de pontos para viagem 267: " . $total['total'] . "\n";
    
    if ($total['total'] > 0) {
        // Mostrar últimos pontos
        $stmt = $pdo->prepare("SELECT * FROM rastreamento_tempo_real WHERE viagem_id = 267 ORDER BY timestamp_gps DESC LIMIT 3");
        $stmt->execute();
        $pontos = $stmt->fetchAll();
        
        echo "   - Últimos 3 pontos:\n";
        foreach ($pontos as $i => $ponto) {
            echo "     " . ($i + 1) . ". ID: " . $ponto['id'] . 
                 " | Lat: " . $ponto['latitude'] . 
                 " | Lon: " . $ponto['longitude'] . 
                 " | Timestamp: " . $ponto['timestamp_gps'] . "\n";
        }
    } else {
        echo "   ❌ NENHUM PONTO ENCONTRADO!\n";
    }
    
    echo "\n";
    
    // 3. Verificar dados da viagem
    echo "3. 📊 DADOS DA VIAGEM 267:\n";
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = 267");
    $stmt->execute();
    $viagem = $stmt->fetch();
    
    if ($viagem) {
        echo "   ✅ Viagem encontrada!\n";
        echo "   - Cliente: " . $viagem['cliente'] . "\n";
        echo "   - Técnico ID: " . $viagem['tecnico_id'] . "\n";
        echo "   - Latitude Inicial: " . ($viagem['latitude_inicial'] ?? 'NULL') . "\n";
        echo "   - Longitude Inicial: " . ($viagem['longitude_inicial'] ?? 'NULL') . "\n";
        echo "   - Latitude Final: " . ($viagem['latitude_final'] ?? 'NULL') . "\n";
        echo "   - Longitude Final: " . ($viagem['longitude_final'] ?? 'NULL') . "\n";
        echo "   - Trajeto: " . (strlen($viagem['trajeto'] ?? '') > 0 ? 'SIM (' . strlen($viagem['trajeto']) . ' chars)' : 'NULL') . "\n";
    } else {
        echo "   ❌ Viagem 267 NÃO encontrada!\n";
    }
    
    echo "\n=== FIM DO TESTE ===\n";
    
} catch (Exception $e) {
    echo "❌ ERRO: " . $e->getMessage() . "\n";
}
?>
