<?php
// Script para verificar como os valores de KM GPS estão armazenados no banco
require_once 'config/database.php';

try {
    $pdo = conectarBanco();
    
    echo "=== VERIFICAÇÃO DE VALORES KM GPS NO BANCO ===\n\n";
    
    // Verificar estrutura da tabela viagens
    echo "1. ESTRUTURA DA TABELA VIAGENS (campos relacionados a KM):\n";
    $stmt = $pdo->query("DESCRIBE viagens");
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        if (strpos($row['Field'], 'km') !== false || strpos($row['Field'], 'distancia') !== false) {
            echo "   - {$row['Field']}: {$row['Type']} | {$row['Null']} | {$row['Default']}\n";
        }
    }
    
    echo "\n2. ÚLTIMAS 5 VIAGENS COM DADOS GPS:\n";
    $stmt = $pdo->query("
        SELECT 
            id, 
            distancia_gps, 
            km_gps_final, 
            km_gps_real,
            odometro_inicial,
            odometro_final,
            created_at
        FROM viagens 
        WHERE distancia_gps IS NOT NULL 
        ORDER BY id DESC 
        LIMIT 5
    ");
    
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "   ID: {$row['id']}\n";
        echo "   - distancia_gps: {$row['distancia_gps']} (tipo: " . gettype($row['distancia_gps']) . ")\n";
        echo "   - km_gps_final: {$row['km_gps_final']} (tipo: " . gettype($row['km_gps_final']) . ")\n";
        echo "   - km_gps_real: {$row['km_gps_real']} (tipo: " . gettype($row['km_gps_real']) . ")\n";
        echo "   - odometro_inicial: {$row['odometro_inicial']}\n";
        echo "   - odometro_final: {$row['odometro_final']}\n";
        echo "   - created_at: {$row['created_at']}\n";
        echo "   ---\n";
    }
    
    echo "\n3. VERIFICAR SE EXISTE VALOR 1.4 KM:\n";
    $stmt = $pdo->query("
        SELECT 
            id, 
            distancia_gps, 
            km_gps_final, 
            km_gps_real
        FROM viagens 
        WHERE distancia_gps = 1.4 
           OR km_gps_final = 1.4 
           OR km_gps_real = 1.4
           OR distancia_gps LIKE '%1.4%'
           OR km_gps_final LIKE '%1.4%'
           OR km_gps_real LIKE '%1.4%'
    ");
    
    $encontrados = $stmt->fetchAll(PDO::FETCH_ASSOC);
    if (empty($encontrados)) {
        echo "   ❌ Nenhum registro encontrado com valor 1.4 km\n";
    } else {
        echo "   ✅ Registros encontrados com valor 1.4 km:\n";
        foreach ($encontrados as $row) {
            echo "   - ID: {$row['id']} | distancia_gps: {$row['distancia_gps']} | km_gps_final: {$row['km_gps_final']} | km_gps_real: {$row['km_gps_real']}\n";
        }
    }
    
    echo "\n4. VERIFICAR ARREDONDAMENTO - Valores próximos a 1.4:\n";
    $stmt = $pdo->query("
        SELECT 
            id, 
            distancia_gps, 
            km_gps_final, 
            km_gps_real
        FROM viagens 
        WHERE (distancia_gps BETWEEN 1.35 AND 1.45)
           OR (km_gps_final BETWEEN 1.35 AND 1.45)
           OR (km_gps_real BETWEEN 1.35 AND 1.45)
        ORDER BY id DESC
        LIMIT 10
    ");
    
    $proximos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    if (empty($proximos)) {
        echo "   ❌ Nenhum registro encontrado com valores próximos a 1.4 km\n";
    } else {
        echo "   ✅ Registros encontrados com valores próximos a 1.4 km:\n";
        foreach ($proximos as $row) {
            echo "   - ID: {$row['id']} | distancia_gps: {$row['distancia_gps']} | km_gps_final: {$row['km_gps_final']} | km_gps_real: {$row['km_gps_real']}\n";
        }
    }
    
    echo "\n5. VERIFICAR COMO É FEITO O ARREDONDAMENTO NO CÓDIGO:\n";
    echo "   - ROUND(SUM(...), 2) - arredonda para 2 casas decimais\n";
    echo "   - Valores como 1.4 km podem ser resultado de arredondamento de 1.35, 1.36, 1.37, 1.38, 1.39\n";
    echo "   - Ou podem ser valores exatos de 1.4 km\n";
    
} catch (Exception $e) {
    echo "ERRO: " . $e->getMessage() . "\n";
}
?>
