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

echo "<h2>🔍 INVESTIGAÇÃO: Viagem #152</h2>";

try {
    require_once 'config/database.php';
    $pdo = new PDO($dsn, $username, $password, $options);
    
    // Buscar dados completos da viagem #152
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = 152");
    $stmt->execute();
    $viagem = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$viagem) {
        echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545;'>";
        echo "<h4>❌ Viagem #152 não encontrada!</h4>";
        echo "</div>";
        exit;
    }
    
    echo "<div style='background: #e0f7ff; padding: 15px; border-left: 5px solid #17a2b8; margin: 20px 0;'>";
    echo "<h3>📊 DADOS ATUAIS DA VIAGEM #152:</h3>";
    echo "</div>";
    
    // Exibir dados em tabela
    echo "<table border='1' style='border-collapse: collapse; width: 100%; font-family: monospace;'>";
    echo "<tr style='background: #f8f9fa;'><th>Campo</th><th>Valor</th><th>Análise</th></tr>";
    
    $campos = [
        'id' => $viagem['id'],
        'cliente' => $viagem['cliente'],
        'data_inicio' => $viagem['data_inicio'],
        'data_fim' => $viagem['data_fim'],
        'km_inicial' => $viagem['km_inicial'],
        'km_final' => $viagem['km_final'],
        'km_gps_final' => $viagem['km_gps_final'],
        'latitude_inicial' => $viagem['latitude_inicial'],
        'longitude_inicial' => $viagem['longitude_inicial'],
        'latitude_final' => $viagem['latitude_final'],
        'longitude_final' => $viagem['longitude_final'],
        'endereco_inicial' => $viagem['endereco_inicial'],
        'endereco_final' => $viagem['endereco_final']
    ];
    
    foreach ($campos as $campo => $valor) {
        $analise = '';
        $cor = '';
        
        switch ($campo) {
            case 'km_inicial':
                $analise = 'Odômetro inicial';
                break;
            case 'km_final':
                if ($valor && $viagem['km_inicial']) {
                    $diferenca = $valor - $viagem['km_inicial'];
                    if ($diferenca == 0) {
                        $analise = "❌ PROBLEMA: Sem diferença no odômetro!";
                        $cor = 'background: #ffe0e0;';
                    } else {
                        $analise = "Odômetro final (+$diferenca km)";
                    }
                } else {
                    $analise = "❌ Odômetro final não definido";
                    $cor = 'background: #ffe0e0;';
                }
                break;
            case 'km_gps_final':
                if ($valor && $valor > 0) {
                    $kmConvertido = round($valor / 1000, 3);
                    $analise = "✅ GPS: $valor metros = $kmConvertido km";
                    $cor = 'background: #e0ffe0;';
                } else {
                    $analise = "❌ GPS não calculado";
                    $cor = 'background: #ffe0e0;';
                }
                break;
            case 'latitude_inicial':
            case 'longitude_inicial':
                if ($valor) {
                    $analise = "✅ Coordenadas GPS inicial";
                    $cor = 'background: #e0ffe0;';
                } else {
                    $analise = "❌ GPS inicial não capturado";
                    $cor = 'background: #ffe0e0;';
                }
                break;
            case 'latitude_final':
            case 'longitude_final':
                if ($valor) {
                    $analise = "✅ Coordenadas GPS final";
                    $cor = 'background: #e0ffe0;';
                } else {
                    $analise = "❌ GPS final não capturado";
                    $cor = 'background: #ffe0e0;';
                }
                break;
        }
        
        echo "<tr style='$cor'>";
        echo "<td><strong>$campo</strong></td>";
        echo "<td>" . ($valor ?: 'NULL') . "</td>";
        echo "<td>$analise</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<h3>🧮 CÁLCULOS DO DASHBOARD:</h3>";
    
    // Simular cálculos do dashboard
    $kmManual = 0;
    if ($viagem['km_final'] && $viagem['km_inicial']) {
        $kmManual = $viagem['km_final'] - $viagem['km_inicial'];
    }
    
    $kmGps = 0;
    if ($viagem['km_gps_final'] && $viagem['km_gps_final'] > 0) {
        $kmGps = $viagem['km_gps_final'] / 1000; // Converter metros para km
    }
    
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
    echo "<ul>";
    echo "<li><strong>KM Manual:</strong> $kmManual km (km_final - km_inicial = {$viagem['km_final']} - {$viagem['km_inicial']})</li>";
    echo "<li><strong>KM GPS:</strong> " . round($kmGps, 3) . " km ({$viagem['km_gps_final']} metros ÷ 1000)</li>";
    echo "<li><strong>Diferença:</strong> " . round(abs($kmManual - $kmGps), 3) . " km</li>";
    echo "</ul>";
    echo "</div>";
    
    echo "<h3>🎯 DIAGNÓSTICO:</h3>";
    
    if ($kmManual == 0 && $kmGps > 0) {
        echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545; margin: 10px 0;'>";
        echo "<h4>❌ PROBLEMA IDENTIFICADO:</h4>";
        echo "<p><strong>KM Manual = 0:</strong> Odômetro não foi alterado (km_inicial = km_final = {$viagem['km_inicial']})</p>";
        echo "<p><strong>KM GPS = " . round($kmGps, 3) . " km:</strong> GPS detectou movimento de {$viagem['km_gps_final']} metros</p>";
        echo "<p><strong>Conclusão:</strong> O usuário esqueceu de atualizar o km_final no app!</p>";
        echo "</div>";
        
        echo "<h4>💡 SOLUÇÕES POSSÍVEIS:</h4>";
        
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            if (isset($_POST['corrigir_km_final'])) {
                $novoKmFinal = $viagem['km_inicial'] + round($kmGps);
                
                echo "<h4>🔧 Aplicando Correção...</h4>";
                
                $stmt = $pdo->prepare("UPDATE viagens SET km_final = ? WHERE id = 152");
                $result = $stmt->execute([$novoKmFinal]);
                
                if ($result) {
                    echo "<div style='background: #e0ffe0; padding: 15px; border-left: 5px solid #28a745; margin: 10px 0;'>";
                    echo "<h4>✅ Correção Aplicada!</h4>";
                    echo "<p><strong>km_final alterado:</strong> {$viagem['km_final']} → $novoKmFinal</p>";
                    echo "<p><strong>Novo KM Manual:</strong> " . ($novoKmFinal - $viagem['km_inicial']) . " km</p>";
                    echo "<p><strong>Resultado:</strong> KM Manual agora coincide com KM GPS!</p>";
                    echo "</div>";
                    
                    echo "<script>setTimeout(() => window.location.reload(), 2000);</script>";
                } else {
                    echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545; margin: 10px 0;'>";
                    echo "<h4>❌ Erro ao aplicar correção!</h4>";
                    echo "</div>";
                }
            }
            
            if (isset($_POST['corrigir_manualmente'])) {
                $kmFinalManual = intval($_POST['km_final_manual']);
                
                if ($kmFinalManual > $viagem['km_inicial']) {
                    echo "<h4>🔧 Aplicando Correção Manual...</h4>";
                    
                    $stmt = $pdo->prepare("UPDATE viagens SET km_final = ? WHERE id = 152");
                    $result = $stmt->execute([$kmFinalManual]);
                    
                    if ($result) {
                        echo "<div style='background: #e0ffe0; padding: 15px; border-left: 5px solid #28a745; margin: 10px 0;'>";
                        echo "<h4>✅ Correção Manual Aplicada!</h4>";
                        echo "<p><strong>km_final alterado:</strong> {$viagem['km_final']} → $kmFinalManual</p>";
                        echo "<p><strong>Novo KM Manual:</strong> " . ($kmFinalManual - $viagem['km_inicial']) . " km</p>";
                        echo "</div>";
                        
                        echo "<script>setTimeout(() => window.location.reload(), 2000);</script>";
                    } else {
                        echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545; margin: 10px 0;'>";
                        echo "<h4>❌ Erro ao aplicar correção manual!</h4>";
                        echo "</div>";
                    }
                } else {
                    echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545; margin: 10px 0;'>";
                    echo "<h4>❌ Valor inválido!</h4>";
                    echo "<p>O km_final deve ser maior que km_inicial ({$viagem['km_inicial']})</p>";
                    echo "</div>";
                }
            }
        } else {
            $sugestaoKmFinal = $viagem['km_inicial'] + max(1, round($kmGps));
            
            echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
            echo "<h4>🔧 Opção 1: Correção Automática</h4>";
            echo "<p>Baseado no GPS ({$viagem['km_gps_final']} metros), sugerimos:</p>";
            echo "<p><strong>Novo km_final:</strong> $sugestaoKmFinal (km_inicial + " . round($kmGps) . ")</p>";
            
            echo "<form method='post'>";
            echo "<button type='submit' name='corrigir_km_final' style='background: #28a745; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>✅ Aplicar Correção Automática</button>";
            echo "</form>";
            echo "</div>";
            
            echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px; margin-top: 10px;'>";
            echo "<h4>🔧 Opção 2: Correção Manual</h4>";
            echo "<p>Digite o km_final correto (atual: {$viagem['km_final']}):</p>";
            
            echo "<form method='post'>";
            echo "<input type='number' name='km_final_manual' placeholder='Exemplo: 2' min='" . ($viagem['km_inicial'] + 1) . "' required style='padding: 8px; margin-right: 10px;'>";
            echo "<button type='submit' name='corrigir_manualmente' style='background: #007bff; color: white; padding: 8px 15px; border: none; border-radius: 5px; cursor: pointer;'>🔧 Aplicar Correção Manual</button>";
            echo "</form>";
            echo "</div>";
        }
        
    } else {
        echo "<div style='background: #e0ffe0; padding: 15px; border-left: 5px solid #28a745; margin: 10px 0;'>";
        echo "<h4>✅ Dados Corretos!</h4>";
        echo "<p>KM Manual e KM GPS estão coerentes.</p>";
        echo "</div>";
    }
    
    echo "<h3>📋 Como isso afeta o Dashboard:</h3>";
    
    echo "<div style='background: #fff3cd; padding: 15px; border-left: 5px solid #ffc107; margin: 10px 0;'>";
    echo "<h4>🎯 Entendendo o problema:</h4>";
    echo "<ol>";
    echo "<li><strong>Dashboard mostra KM Manual = 0:</strong> Porque km_final = km_inicial = {$viagem['km_inicial']}</li>";
    echo "<li><strong>Dashboard mostra KM GPS = " . round($kmGps, 3) . " km:</strong> Porque o app calculou {$viagem['km_gps_final']} metros de trajeto</li>";
    echo "<li><strong>Usuário esperava ver distância:</strong> Mas esqueceu de atualizar odômetro no app</li>";
    echo "</ol>";
    
    echo "<p><strong>Solução:</strong> Corrigir o km_final para refletir a distância real percorrida!</p>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545;'>";
    echo "<h4>❌ Erro:</h4>";
    echo "<p>{$e->getMessage()}</p>";
    echo "</div>";
}
?> 
