<?php
header('Content-Type: text/html; charset=utf-8');

echo "<h1>🔍 Teste do Cálculo da Rota #1</h1>";

try {
    $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,
    ]);
    
    echo "<h2>1️⃣ Verificando Rota #1</h2>";
    
    // Buscar rota
    $stmt = $pdo->prepare("SELECT * FROM solicitacoes_rotas WHERE id = 1");
    $stmt->execute();
    $rota = $stmt->fetch();
    
    if (!$rota) {
        echo "<p style='color: red;'>❌ Rota #1 não encontrada!</p>";
        exit;
    }
    
    echo "<p><strong>Rota encontrada:</strong> {$rota['titulo']}</p>";
    echo "<p><strong>KM Real:</strong> {$rota['km_real']} km</p>";
    
    echo "<h2>2️⃣ Verificando Viagens da Rota</h2>";
    
    // Buscar viagens da rota
    $stmt = $pdo->prepare("
        SELECT id, cliente, km_gps_inicial, km_gps_final, 
               (km_gps_final - km_gps_inicial) as distancia_percorrida
        FROM viagens 
        WHERE solicitacao_rota_id = 1 
        ORDER BY id
    ");
    $stmt->execute();
    $viagens = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse; margin: 10px 0; width: 100%;'>";
    echo "<tr style='background: #e8f5e8;'>";
    echo "<th>ID</th><th>Cliente</th><th>KM GPS Inicial</th><th>KM GPS Final</th><th>Distância Percorrida</th>";
    echo "</tr>";
    
    $totalDistancia = 0;
    foreach ($viagens as $v) {
        $distancia = $v['distancia_percorrida'] > 0 ? $v['distancia_percorrida'] / 1000 : 0;
        $totalDistancia += $distancia;
        
        echo "<tr>";
        echo "<td>{$v['id']}</td>";
        echo "<td>{$v['cliente']}</td>";
        echo "<td>" . ($v['km_gps_inicial'] ? $v['km_gps_inicial'] / 1000 : '0') . " km</td>";
        echo "<td>" . ($v['km_gps_final'] ? $v['km_gps_final'] / 1000 : '0') . " km</td>";
        echo "<td><strong>{$distancia} km</strong></td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<h2>3️⃣ Cálculo da API Corrigida</h2>";
    
    // Testar a lógica da API corrigida
    $sqlTeste = "
        SELECT SUM(
            CASE 
                WHEN km_gps_inicial IS NULL OR km_gps_inicial = 0 
                THEN km_gps_final / 1000
                ELSE (km_gps_final - km_gps_inicial) / 1000
            END
        ) as km_gps_total
        FROM viagens 
        WHERE solicitacao_rota_id = 1 
        AND km_gps_final > 0
    ";
    
    $stmt = $pdo->query($sqlTeste);
    $resultado = $stmt->fetch();
    
    echo "<p><strong>SQL da API:</strong></p>";
    echo "<pre style='background: #f8f9fa; padding: 10px; border-radius: 5px;'>";
    echo htmlspecialchars($sqlTeste);
    echo "</pre>";
    
    echo "<p><strong>Resultado da API:</strong> {$resultado['km_gps_total']} km</p>";
    
    echo "<h2>4️⃣ Resumo</h2>";
    
    echo "<div style='background: #d4edda; padding: 15px; border-radius: 5px; border: 1px solid #c3e6cb;'>";
    echo "<h3>📊 DADOS FINAIS:</h3>";
    echo "<ul>";
    echo "<li><strong>Total de viagens:</strong> " . count($viagens) . "</li>";
    echo "<li><strong>Distância total calculada:</strong> {$totalDistancia} km</li>";
    echo "<li><strong>Resultado da API:</strong> {$resultado['km_gps_total']} km</li>";
    echo "<li><strong>KM Real da rota:</strong> {$rota['km_real']} km</li>";
    echo "</ul>";
    echo "</div>";
    
} catch (PDOException $e) {
    echo "<p style='color: red;'>❌ Erro de banco: " . $e->getMessage() . "</p>";
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro geral: " . $e->getMessage() . "</p>";
}
?>
