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

echo "<h2>🔍 VERIFICADOR: App Android enviando KM GPS</h2>";

echo "<div style='background: #e0f7ff; padding: 15px; border-left: 5px solid #17a2b8; margin: 20px 0;'>";
echo "<h3>🎯 Objetivo:</h3>";
echo "<p>Verificar se o app Android está enviando o campo <code>kmGpsFinal</code> quando finaliza uma viagem.</p>";
echo "<p><strong>Método:</strong> Monitorar logs da API e analisar requisições recebidas.</p>";
echo "</div>";

try {
    require_once 'config/database.php';
    $pdo = new PDO($dsn, $username, $password, $options);
    
    echo "<h3>1. 📊 Status Atual da API:</h3>";
    
    // Verificar se API está funcionando
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
    echo "<h4>🔧 Endpoint finalizar-viagem:</h4>";
    
    // Verificar última requisição (se houver logs)
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM viagens WHERE data_fim IS NOT NULL AND data_fim > DATE_SUB(NOW(), INTERVAL 1 DAY)");
    $viagensFinalizadas = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
    
    echo "<ul>";
    echo "<li><strong>Viagens finalizadas hoje:</strong> $viagensFinalizadas</li>";
    echo "<li><strong>API corrigida:</strong> ✅ Aceita tanto 'km_rodados' quanto 'kmGpsFinal'</li>";
    echo "<li><strong>Logs:</strong> ✅ Debug habilitado no error_log</li>";
    echo "</ul>";
    echo "</div>";
    
    echo "<h3>2. 🔍 Analisar Viagens Recentes:</h3>";
    
    // Buscar viagens recentes com dados de KM GPS
    $stmt = $pdo->query("
        SELECT 
            id, cliente, data_inicio, data_fim,
            km_inicial, km_final, km_gps_final,
            latitude_inicial, longitude_inicial,
            latitude_final, longitude_final,
            CASE 
                WHEN data_fim IS NULL THEN 'EM ANDAMENTO'
                WHEN km_gps_final IS NOT NULL AND km_gps_final > 0 THEN 'COM KM GPS'
                ELSE 'SEM KM GPS'
            END as status_km_gps
        FROM viagens 
        ORDER BY data_inicio DESC 
        LIMIT 10
    ");
    $viagensRecentes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr style='background: #f8f9fa;'>";
    echo "<th>ID</th><th>Cliente</th><th>Data/Hora</th><th>Status</th><th>KM GPS</th><th>Coordenadas</th>";
    echo "</tr>";
    
    foreach ($viagensRecentes as $viagem) {
        $statusCor = '';
        switch ($viagem['status_km_gps']) {
            case 'COM KM GPS':
                $statusCor = 'background: #e0ffe0;';
                break;
            case 'SEM KM GPS':
                $statusCor = 'background: #ffe0e0;';
                break;
            case 'EM ANDAMENTO':
                $statusCor = 'background: #fff3cd;';
                break;
        }
        
        echo "<tr style='$statusCor'>";
        echo "<td>{$viagem['id']}</td>";
        echo "<td>" . substr($viagem['cliente'], 0, 30) . "</td>";
        echo "<td>" . date('d/m H:i', strtotime($viagem['data_inicio'])) . "</td>";
        echo "<td>{$viagem['status_km_gps']}</td>";
        echo "<td>" . ($viagem['km_gps_final'] ? round($viagem['km_gps_final'], 3) . ' km' : 'NULL') . "</td>";
        
        $temCoordenadas = ($viagem['latitude_inicial'] && $viagem['longitude_inicial']);
        echo "<td>" . ($temCoordenadas ? '✅ SIM' : '❌ NÃO') . "</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<h3>3. 📋 Resumo da Análise:</h3>";
    
    $comKmGps = array_filter($viagensRecentes, fn($v) => $v['status_km_gps'] === 'COM KM GPS');
    $semKmGps = array_filter($viagensRecentes, fn($v) => $v['status_km_gps'] === 'SEM KM GPS');
    $emAndamento = array_filter($viagensRecentes, fn($v) => $v['status_km_gps'] === 'EM ANDAMENTO');
    
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
    echo "<h4>📊 Estatísticas (últimas 10 viagens):</h4>";
    echo "<ul>";
    echo "<li><strong>✅ Com KM GPS:</strong> " . count($comKmGps) . " viagens</li>";
    echo "<li><strong>❌ Sem KM GPS:</strong> " . count($semKmGps) . " viagens</li>";
    echo "<li><strong>🔄 Em andamento:</strong> " . count($emAndamento) . " viagens</li>";
    echo "</ul>";
    echo "</div>";
    
    if (count($semKmGps) > 0) {
        echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545; margin: 10px 0;'>";
        echo "<h4>⚠️ PROBLEMA DETECTADO:</h4>";
        echo "<p>Existem <strong>" . count($semKmGps) . " viagens sem KM GPS</strong> nas últimas 10.</p>";
        echo "<p>Isso pode indicar que:</p>";
        echo "<ul>";
        echo "<li>❌ App não está enviando o campo kmGpsFinal</li>";
        echo "<li>❌ API não está processando o campo corretamente</li>";
        echo "<li>❌ Problema na comunicação entre app e servidor</li>";
        echo "</ul>";
        echo "</div>";
    } else {
        echo "<div style='background: #e0ffe0; padding: 15px; border-left: 5px solid #28a745; margin: 10px 0;'>";
        echo "<h4>✅ SITUAÇÃO BOA:</h4>";
        echo "<p>Todas as viagens finalizadas recentes têm KM GPS!</p>";
        echo "</div>";
    }
    
    // SEÇÃO 4: Monitor em tempo real
    echo "<h3>4. 🕐 Monitor em Tempo Real:</h3>";
    
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['ativar_monitor'])) {
        echo "<div style='background: #fff3cd; padding: 15px; border-left: 5px solid #ffc107; margin: 10px 0;'>";
        echo "<h4>📡 Monitor Ativado!</h4>";
        echo "<p>Agora finalize uma viagem no app Android e veja os logs aparecerem aqui:</p>";
        echo "<div id='logs-tempo-real' style='background: black; color: green; padding: 10px; font-family: monospace; height: 300px; overflow-y: auto; border: 1px solid #ccc;'>";
        echo "🔍 Aguardando logs da API...\n";
        echo "Quando você finalizar uma viagem no app, os logs aparecerão aqui.\n";
        echo "Procure por mensagens contendo 'finalizar-viagem' e 'kmGpsFinal'.\n\n";
        
        // Simular monitoramento (em produção seria via websocket ou polling)
        echo "📋 Para monitorar manualmente, verifique o arquivo error_log do PHP.\n";
        echo "Procure por linhas contendo: '🔄 SQL UPDATE' e '🔄 Valores para UPDATE'\n\n";
        echo "Exemplo do que deve aparecer quando app envia kmGpsFinal:\n";
        echo "🔄 Valores para UPDATE: [..., 0.271, 0.271, 0.271, ...]\n";
        echo "✅ Viagem ID XXX finalizada com sucesso!\n";
        echo "</div>";
        echo "</div>";
        
        echo "<script>";
        echo "setTimeout(() => {";
        echo "  document.getElementById('logs-tempo-real').innerHTML += '\\n💡 DICA: Para teste real, finalize uma viagem no app Android agora.\\n';";
        echo "}, 2000);";
        echo "</script>";
        
    } else {
        echo "<div style='background: #f8f9fa; padding: 20px; border: 1px solid #ddd; border-radius: 5px;'>";
        echo "<h4>📱 Instruções para Teste:</h4>";
        echo "<ol>";
        echo "<li>Clique no botão abaixo para ativar o monitor</li>";
        echo "<li>Abra o app Android</li>";
        echo "<li>Finalize uma viagem em andamento</li>";
        echo "<li>Observe se o campo kmGpsFinal aparece nos logs</li>";
        echo "</ol>";
        
        echo "<form method='post'>";
        echo "<button type='submit' name='ativar_monitor' style='background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>📡 Ativar Monitor de Logs</button>";
        echo "</form>";
        echo "</div>";
    }
    
    echo "<h3>5. 🧪 Teste Manual da API:</h3>";
    
    // Botão para teste manual
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['testar_api_manual'])) {
        echo "<h4>🔬 Executando Teste Manual...</h4>";
        
        // Simular requisição do app
        $dadosTeste = [
            'viagem_id' => 151, // Viagem de teste
            'latitude_fim' => -11.01640470,
            'longitude_fim' => -37.07615030,
            'kmGpsFinal' => 0.271, // Campo que o app deve enviar
            'observacoes' => 'Teste manual - verificar campo kmGpsFinal'
        ];
        
        echo "<p><strong>Simulando envio do app:</strong></p>";
        echo "<pre style='background: #f8f9fa; padding: 10px; border: 1px solid #ccc;'>";
        echo json_encode($dadosTeste, JSON_PRETTY_PRINT);
        echo "</pre>";
        
        // Fazer requisição para própria API
        $url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']) . '/api-simples-v2.php?acao=finalizar-viagem';
        
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dadosTeste));
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        
        echo "<p><strong>Resposta da API:</strong></p>";
        echo "<p>HTTP Code: $httpCode</p>";
        echo "<pre style='background: #f8f9fa; padding: 10px; border: 1px solid #ccc;'>";
        echo htmlspecialchars($response);
        echo "</pre>";
        
        $responseData = json_decode($response, true);
        if ($responseData && $responseData['sucesso']) {
            echo "<p style='color: green;'>✅ <strong>API funcionando!</strong> Campo kmGpsFinal foi processado.</p>";
        } else {
            echo "<p style='color: red;'>❌ <strong>Problema na API!</strong> Verifique os logs.</p>";
        }
        
    } else {
        echo "<form method='post' style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
        echo "<p>Teste se a API está processando corretamente o campo kmGpsFinal:</p>";
        echo "<button type='submit' name='testar_api_manual' style='background: #28a745; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🧪 Testar API Manualmente</button>";
        echo "</form>";
    }
    
    echo "<h3>6. 📋 Como Verificar os Logs:</h3>";
    
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
    echo "<h4>🔍 Localização dos Logs:</h4>";
    echo "<p>Os logs detalhados ficam no arquivo error_log do servidor. Mensagens para procurar:</p>";
    echo "<ul>";
    echo "<li><code>🔄 Valores para UPDATE</code> - Mostra se kmGpsFinal chegou</li>";
    echo "<li><code>✅ Viagem ID XXX finalizada</code> - Confirma finalização</li>";
    echo "<li><code>📊 Linhas afetadas</code> - Confirma que banco foi atualizado</li>";
    echo "</ul>";
    
    echo "<h4>🎯 O que procurar:</h4>";
    echo "<ol>";
    echo "<li><strong>Se kmGpsFinal está chegando:</strong> Logs mostrarão valor > 0</li>";
    echo "<li><strong>Se API está processando:</strong> UPDATE será executado com sucesso</li>";
    echo "<li><strong>Se banco está salvando:</strong> km_gps_final será != NULL</li>";
    echo "</ol>";
    echo "</div>";
    
    echo "<h3>7. 🎯 Conclusão:</h3>";
    
    echo "<div style='background: #e0f7ff; padding: 15px; border-left: 5px solid #17a2b8; margin: 20px 0;'>";
    echo "<h4>📊 Status do Sistema:</h4>";
    echo "<ul>";
    echo "<li>✅ <strong>Código Android:</strong> Configurado para enviar kmGpsFinal</li>";
    echo "<li>✅ <strong>API Backend:</strong> Corrigida para aceitar kmGpsFinal</li>";
    echo "<li>✅ <strong>Logs:</strong> Detalhados para debug</li>";
    echo "<li>🔍 <strong>Próximo passo:</strong> Testar com viagem real no app</li>";
    echo "</ul>";
    
    if (count($semKmGps) > 0) {
        echo "<p style='color: red;'><strong>⚠️ AÇÃO NECESSÁRIA:</strong> Ainda há viagens sem KM GPS. Teste com o app agora!</p>";
    } else {
        echo "<p style='color: green;'><strong>✅ SITUAÇÃO BOA:</strong> Sistema parece estar funcionando corretamente!</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>";
}
?> 
