<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h2>🧪 Teste Correção KM GPS API</h2>";

// 1. Testar API com dados corretos
echo "<h3>1. Testar API com dados corretos</h3>";

if (isset($_POST['testar_api'])) {
    echo "<h4>🧪 Testando API com km_gps_final = 390 (metros)</h4>";
    
    // Simular dados do Android
    $dadosTeste = [
        'acao' => 'finalizar-viagem',
        'viagem_id' => 1,
        'latitude_fim' => -23.5505,
        'longitude_fim' => -46.6333,
        'kmGpsFinal' => 390, // 390 metros (como o app envia)
        'observacoes' => 'Teste correção km_gps_final'
    ];
    
    $jsonData = json_encode($dadosTeste);
    
    // Fazer requisição para a API
    $url = 'https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-simples-v2.php';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Content-Length: ' . strlen($jsonData)
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    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 "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h5>📤 Dados enviados:</h5>";
    echo "<pre>" . htmlspecialchars($jsonData) . "</pre>";
    echo "<h5>📥 Resposta da API:</h5>";
    echo "<p><strong>HTTP Code:</strong> $httpCode</p>";
    echo "<p><strong>Resposta:</strong></p>";
    echo "<pre>" . htmlspecialchars($response) . "</pre>";
    
    if ($error) {
        echo "<p style='color: red;'><strong>Erro cURL:</strong> $error</p>";
    }
    
    if ($httpCode == 200) {
        echo "<p style='color: green;'>✅ API respondeu com sucesso!</p>";
    } else {
        echo "<p style='color: red;'>❌ API retornou erro HTTP: $httpCode</p>";
    }
    echo "</div>";
}

// 2. Verificar dados salvos
echo "<h3>2. Verificar dados salvos</h3>";

try {
    require_once 'config/database.php';
    $pdo = Database::getConnection();
    
    // Verificar viagem 1
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = ?");
    $stmt->execute([1]);
    $viagem = $stmt->fetch();
    
    if ($viagem) {
        echo "<div style='background: #e8f5e8; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>✅ Viagem 1 - Dados Salvos:</h4>";
        echo "<p><strong>KM GPS Final:</strong> {$viagem['km_gps_final']}</p>";
        echo "<p><strong>Latitude Final:</strong> " . ($viagem['latitude_final'] ?? 'NULL') . "</p>";
        echo "<p><strong>Longitude Final:</strong> " . ($viagem['longitude_final'] ?? 'NULL') . "</p>";
        echo "<p><strong>Data Fim:</strong> " . ($viagem['data_fim'] ?? 'NULL') . "</p>";
        echo "</div>";
        
        // Verificar se o valor está correto
        $kmGpsSalvo = floatval($viagem['km_gps_final']);
        $kmGpsEsperado = 0.39; // 390 metros = 0,39 km
        
        if (abs($kmGpsSalvo - $kmGpsEsperado) < 0.01) {
            echo "<div style='background: #e8f5e8; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
            echo "<h4>✅ Correção funcionou!</h4>";
            echo "<p>KM GPS salvo corretamente: {$kmGpsSalvo} km (390 metros)</p>";
            echo "</div>";
        } else {
            echo "<div style='background: #ffebee; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
            echo "<h4>❌ Correção não funcionou</h4>";
            echo "<p>KM GPS salvo: {$kmGpsSalvo} km (deveria ser {$kmGpsEsperado} km)</p>";
            echo "</div>";
        }
    }
    
} catch (Exception $e) {
    echo "❌ Erro ao verificar dados: " . $e->getMessage() . "<br>";
}

// 3. Formulário de teste
echo "<h3>3. Teste Manual</h3>";

echo "<form method='post' style='background: #e3f2fd; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
echo "<h4>🔧 Testar Correção da API:</h4>";
echo "<p>Simula o envio de dados do Android com km_gps_final = 390 metros:</p>";
echo "<button type='submit' name='testar_api' style='background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🧪 Testar API</button>";
echo "</form>";

// 4. Explicação da correção
echo "<h3>4. Explicação da Correção</h3>";
echo "<div style='background: #fff3e0; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
echo "<h4>🔧 O que foi corrigido:</h4>";
echo "<p><strong>Problema:</strong> A API estava salvando o valor em metros como se fosse em km.</p>";
echo "<p><strong>Solução:</strong> Dividir o valor por 1000 para converter metros em km.</p>";
echo "<ul>";
echo "<li><strong>App envia:</strong> 390 (metros)</li>";
echo "<li><strong>API processa:</strong> 390 ÷ 1000 = 0,39 km</li>";
echo "<li><strong>API salva:</strong> 0,39 km ✅</li>";
echo "</ul>";
echo "</div>";

echo "<h3>✅ Teste Concluído!</h3>";
echo "<p><strong>Resumo:</strong> A correção deve fazer com que 390 metros sejam salvos como 0,39 km.</p>";
?>
