<?php
/**
 * DEBUG FINALIZAÇÃO V2
 * Verificar problemas específicos na finalização
 */

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>🔍 DEBUG FINALIZAÇÃO V2</h1>";
    
    // Verificar última viagem
    $stmt = $pdo->query("
        SELECT * FROM viagens 
        ORDER BY id DESC 
        LIMIT 1
    ");
    $ultimaViagem = $stmt->fetch();
    
    if ($ultimaViagem) {
        echo "<h2>📋 ÚLTIMA VIAGEM (ID: {$ultimaViagem['id']}):</h2>";
        echo "<div style='background: #f8f9fa; padding: 15px; border-radius: 5px; font-family: monospace;'>";
        
        echo "<strong>🚗 DADOS BÁSICOS:</strong><br>";
        echo "Cliente: {$ultimaViagem['cliente']}<br>";
        echo "Status: " . ($ultimaViagem['data_fim'] ? 'Finalizada' : 'Ativa') . "<br>";
        echo "Data início: {$ultimaViagem['data_inicio']}<br>";
        echo "Data fim: " . ($ultimaViagem['data_fim'] ?: 'NULL') . "<br>";
        echo "<hr>";
        
        echo "<strong>📏 QUILOMETRAGEM:</strong><br>";
        echo "KM Inicial: {$ultimaViagem['km_inicial']}<br>";
        echo "KM Final: " . ($ultimaViagem['km_final'] ?: '<span style="color:red">NULL</span>') . "<br>";
        echo "KM GPS Final: " . ($ultimaViagem['km_gps_final'] ?: '<span style="color:red">NULL</span>') . "<br>";
        echo "<hr>";
        
        echo "<strong>🗺️ ENDEREÇOS:</strong><br>";
        echo "Endereço Inicial: " . ($ultimaViagem['endereco_inicial'] ?: '<span style="color:red">NULL</span>') . "<br>";
        echo "Endereço Final: " . ($ultimaViagem['endereco_final'] ?: '<span style="color:red">NULL</span>') . "<br>";
        echo "<hr>";
        
        echo "<strong>📍 COORDENADAS:</strong><br>";
        echo "Lat/Lng Inicial: ";
        if ($ultimaViagem['latitude_inicial'] && $ultimaViagem['longitude_inicial']) {
            echo "{$ultimaViagem['latitude_inicial']}, {$ultimaViagem['longitude_inicial']}<br>";
        } else {
            echo "<span style='color:red'>NULL</span><br>";
        }
        
        echo "Lat/Lng Final: ";
        if ($ultimaViagem['latitude_final'] && $ultimaViagem['longitude_final']) {
            echo "{$ultimaViagem['latitude_final']}, {$ultimaViagem['longitude_final']}<br>";
        } else {
            echo "<span style='color:red'>NULL</span><br>";
        }
        
        echo "</div>";
        
        // Análise dos problemas
        echo "<h2>🚨 PROBLEMAS IDENTIFICADOS:</h2>";
        
        $problemas = [];
        
        if (!$ultimaViagem['km_gps_final']) {
            $problemas[] = "❌ KM GPS não salvo";
        }
        
        if (!$ultimaViagem['endereco_inicial'] && !$ultimaViagem['endereco_final']) {
            $problemas[] = "❌ Endereços não salvos";
        }
        
        if ($ultimaViagem['km_final'] && $ultimaViagem['km_inicial']) {
            $kmOdometro = $ultimaViagem['km_final'] - $ultimaViagem['km_inicial'];
            if ($kmOdometro < 1) {
                $problemas[] = "⚠️ Viagem curta ({$kmOdometro} km) - app exige mínimo 1km";
            }
        }
        
        if (empty($problemas)) {
            echo "<div style='background: #d4edda; padding: 15px; border-radius: 5px;'>";
            echo "✅ Nenhum problema detectado!";
            echo "</div>";
        } else {
            echo "<div style='background: #f8d7da; padding: 15px; border-radius: 5px;'>";
            foreach ($problemas as $problema) {
                echo "$problema<br>";
            }
            echo "</div>";
        }
    }
    
    echo "<h2>🔧 CORREÇÕES PROPOSTAS:</h2>";
    
    echo "<h3>1️⃣ PROBLEMA: App exige mínimo 1km</h3>";
    echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
    echo "<p><strong>Solução:</strong> Corrigir validação no app Android</p>";
    echo "<p><strong>Arquivo:</strong> FinalizarViagemScreen.kt</p>";
    echo "<p><strong>Linha:</strong> Validação do botão 'enabled'</p>";
    echo "<code>// ANTES: kmFinal.toInt() > viagem.kmInicial<br>";
    echo "// DEPOIS: kmFinal.toInt() >= viagem.kmInicial</code>";
    echo "</div>";
    
    echo "<h3>2️⃣ PROBLEMA: KM GPS não sendo enviado</h3>";
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
    echo "<p><strong>Status:</strong> Correções já aplicadas no código</p>";
    echo "<p><strong>Ação:</strong> Recompilar app Android</p>";
    echo "<p><strong>Verificar:</strong> Se Repository está enviando kmGpsFinal</p>";
    echo "</div>";
    
    echo "<h3>3️⃣ PROBLEMA: Endereços sendo apagados</h3>";
    echo "<div style='background: #d1ecf1; padding: 15px; border-radius: 5px;'>";
    echo "<p><strong>Status:</strong> API já usa COALESCE</p>";
    echo "<p><strong>Possível causa:</strong> App enviando valores null explicitamente</p>";
    echo "<p><strong>Solução:</strong> Não enviar campos vazios do app</p>";
    echo "</div>";
    
    echo "<h2>🧪 SIMULAR FINALIZAÇÃO CORRETA:</h2>";
    echo "<p><a href='?simular=1' style='background: blue; color: white; padding: 10px; text-decoration: none;'>🧪 SIMULAR FINALIZAÇÃO</a></p>";
    
    if (isset($_GET['simular'])) {
        echo "<h3>🎯 Simulando finalização com dados corretos...</h3>";
        
        // Encontrar viagem ativa para simular
        $stmt = $pdo->query("SELECT * FROM viagens WHERE data_fim IS NULL ORDER BY id DESC LIMIT 1");
        $viagemAtiva = $stmt->fetch();
        
        if ($viagemAtiva) {
            echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
            echo "<p><strong>Simulando finalização da viagem ID: {$viagemAtiva['id']}</strong></p>";
            
            // Simular dados corretos
            $kmGpsSimulado = 0.366; // 366 metros
            $kmFinalSimulado = $viagemAtiva['km_inicial'] + 1; // Forçar 1 km para passar validação
            
            echo "<p>KM GPS simulado: {$kmGpsSimulado} km (366 metros)</p>";
            echo "<p>KM Final simulado: {$kmFinalSimulado} km</p>";
            
            // Dados para envio
            $dados = [
                'viagem_id' => $viagemAtiva['id'],
                'latitude_fim' => -9.7558,
                'longitude_fim' => -36.6658,
                'km_rodados' => $kmGpsSimulado,
                'km_final' => $kmFinalSimulado,
                'observacoes' => 'Teste de finalização com 366 metros - ' . date('d/m/Y H:i:s'),
                'endereco_final' => 'Endereço final de teste'
            ];
            
            echo "<p><strong>Dados que seriam enviados:</strong></p>";
            echo "<pre style='background: #f8f9fa; padding: 10px;'>" . json_encode($dados, JSON_PRETTY_PRINT) . "</pre>";
            echo "</div>";
        } else {
            echo "<div style='color: red;'>❌ Nenhuma viagem ativa encontrada para simular</div>";
        }
    }
    
    echo "<h2>🛠️ PRÓXIMOS PASSOS:</h2>";
    echo "<ol>";
    echo "<li><strong>Corrigir validação do app:</strong> Permitir viagens com 0 km</li>";
    echo "<li><strong>Recompilar app Android:</strong> Com as correções do KM GPS</li>";
    echo "<li><strong>Testar nova viagem:</strong> Verificar se problemas foram resolvidos</li>";
    echo "<li><strong>Monitorar logs:</strong> Verificar se dados chegam corretamente na API</li>";
    echo "</ol>";
    
} catch (Exception $e) {
    echo "<h1 style='color: red;'>ERRO: " . $e->getMessage() . "</h1>";
}
?> 
