<?php
/**
 * CORREÇÃO FINAL - KM GPS E ENDEREÇOS
 * Resolve todos os problemas identificados
 */

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

// Conectar ao banco
$host = 'localhost';
$dbname = 'pinheir3_controle_frotasV1.1';
$username = 'pinheir3_admin';
$password = '080880Gelboy';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "<h1>🔧 CORREÇÃO FINAL - SISTEMA DE KM GPS</h1>";
    
    // Status das correções
    echo "<h2>✅ STATUS DAS CORREÇÕES:</h2>";
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
    echo "<p>✅ <strong>Validação app corrigida:</strong> Agora aceita >= (viagens com 0 km)</p>";
    echo "<p>✅ <strong>API backend corrigida:</strong> Usa COALESCE para preservar dados</p>";
    echo "<p>✅ <strong>Dashboard corrigido:</strong> Prioriza km_gps_final</p>";
    echo "<p>✅ <strong>Repository corrigido:</strong> Envia kmGpsFinal calculado</p>";
    echo "</div>";
    
    // Verificar última viagem
    $stmt = $pdo->query("SELECT * FROM viagens ORDER BY id DESC LIMIT 1");
    $ultimaViagem = $stmt->fetch();
    
    if ($ultimaViagem) {
        echo "<h2>📊 ANÁLISE DA ÚLTIMA VIAGEM (ID: {$ultimaViagem['id']}):</h2>";
        
        $problemas = [];
        $avisos = [];
        
        // Verificar problemas
        if (!$ultimaViagem['km_gps_final'] || $ultimaViagem['km_gps_final'] == 0) {
            $problemas[] = "❌ KM GPS não registrado (valor: " . ($ultimaViagem['km_gps_final'] ?: 'NULL') . ")";
        }
        
        if (!$ultimaViagem['endereco_inicial'] && !$ultimaViagem['endereco_final']) {
            $problemas[] = "❌ Endereços não salvos";
        }
        
        if ($ultimaViagem['km_final'] && $ultimaViagem['km_inicial']) {
            $diferenca = $ultimaViagem['km_final'] - $ultimaViagem['km_inicial'];
            if ($diferenca == 0) {
                $avisos[] = "⚠️ Viagem com 0 km de diferença no odômetro";
            }
        }
        
        // Mostrar resultados
        if (empty($problemas) && empty($avisos)) {
            echo "<div style='background: #d4edda; padding: 15px; border-radius: 5px;'>";
            echo "🎉 <strong>PERFEITO!</strong> Viagem registrada corretamente!";
            echo "</div>";
        } else {
            if (!empty($problemas)) {
                echo "<div style='background: #f8d7da; padding: 15px; border-radius: 5px; margin-bottom: 10px;'>";
                echo "<strong>🚨 PROBLEMAS:</strong><br>";
                foreach ($problemas as $problema) {
                    echo "$problema<br>";
                }
                echo "</div>";
            }
            
            if (!empty($avisos)) {
                echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
                echo "<strong>⚠️ AVISOS:</strong><br>";
                foreach ($avisos as $aviso) {
                    echo "$aviso<br>";
                }
                echo "</div>";
            }
        }
        
        // Exibir dados da viagem
        echo "<div style='background: #f8f9fa; padding: 15px; border-radius: 5px; margin-top: 15px; font-family: monospace;'>";
        echo "<strong>📋 DADOS DA VIAGEM:</strong><br>";
        echo "Cliente: {$ultimaViagem['cliente']}<br>";
        echo "KM Inicial: {$ultimaViagem['km_inicial']}<br>";
        echo "KM Final: " . ($ultimaViagem['km_final'] ?: 'NULL') . "<br>";
        echo "KM GPS: " . ($ultimaViagem['km_gps_final'] ?: 'NULL') . "<br>";
        
        if ($ultimaViagem['km_final'] && $ultimaViagem['km_inicial']) {
            $diferenca = $ultimaViagem['km_final'] - $ultimaViagem['km_inicial'];
            echo "Diferença Odômetro: {$diferenca} km<br>";
        }
        
        echo "Endereço Inicial: " . ($ultimaViagem['endereco_inicial'] ? substr($ultimaViagem['endereco_inicial'], 0, 50) . "..." : 'NULL') . "<br>";
        echo "Endereço Final: " . ($ultimaViagem['endereco_final'] ? substr($ultimaViagem['endereco_final'], 0, 50) . "..." : 'NULL') . "<br>";
        echo "</div>";
    }
    
    echo "<h2>🎯 PRÓXIMAS AÇÕES NECESSÁRIAS:</h2>";
    
    echo "<h3>1️⃣ RECOMPILAR APP ANDROID</h3>";
    echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
    echo "<p><strong>CRÍTICO:</strong> As correções de código foram aplicadas mas o app precisa ser recompilado!</p>";
    echo "<p><strong>Arquivos corrigidos:</strong></p>";
    echo "<ul>";
    echo "<li>✅ FinalizarViagemScreen.kt - Validação >= (aceita 0 km)</li>";
    echo "<li>✅ ViagemRepositoryImpl.kt - Envia kmGpsFinal do trajeto</li>";
    echo "<li>✅ Cálculo de distância com arredondamento correto</li>";
    echo "</ul>";
    echo "<p><strong>Comando:</strong> Rebuild e Install no Android Studio</p>";
    echo "</div>";
    
    echo "<h3>2️⃣ TESTE REAL COM APP RECOMPILADO</h3>";
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
    echo "<p><strong>Cenário de teste:</strong></p>";
    echo "<ol>";
    echo "<li>Fazer viagem curta (300-500 metros)</li>";
    echo "<li>Verificar se KM GPS é calculado e enviado</li>";
    echo "<li>Verificar se endereços são preservados</li>";
    echo "<li>Confirmar que não precisa inserir 2km falso</li>";
    echo "</ol>";
    echo "</div>";
    
    echo "<h3>3️⃣ VERIFICAÇÃO FINAL</h3>";
    echo "<div style='background: #d1ecf1; padding: 15px; border-radius: 5px;'>";
    echo "<p><strong>Resultados esperados:</strong></p>";
    echo "<ul>";
    echo "<li>✅ KM GPS deve aparecer no dashboard</li>";
    echo "<li>✅ Diferença entre GPS e Odômetro deve ser mínima (&lt;0.2 km)</li>";
    echo "<li>✅ Endereços devem ser preservados</li>";
    echo "<li>✅ App deve aceitar viagens com poucos metros</li>";
    echo "</ul>";
    echo "</div>";
    
    echo "<h2>🔍 MONITORAMENTO:</h2>";
    echo "<p>Execute este script após cada teste para verificar se os problemas foram resolvidos.</p>";
    
    echo "<h2>📞 SUPORTE:</h2>";
    echo "<div style='background: #f0f0f0; padding: 15px; border-radius: 5px;'>";
    echo "<p>Se após recompilar o app os problemas persistirem:</p>";
    echo "<ol>";
    echo "<li>Verificar logs do Android Studio</li>";
    echo "<li>Testar com viagem mais longa (1-2 km)</li>";
    echo "<li>Analisar dados enviados para API</li>";
    echo "<li>Verificar se repository está funcionando corretamente</li>";
    echo "</ol>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<h1 style='color: red;'>ERRO: " . $e->getMessage() . "</h1>";
}
?> 
