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

echo "<h1>📱 Monitor de GPS Android</h1>";

try {
    $pdo = conectarBanco();
    
    echo "<h2>1. Status atual do sistema</h2>";
    
    // Verificar viagens ativas
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM viagens WHERE data_fim IS NULL");
    $viagensAtivas = $stmt->fetch()['total'];
    
    echo "<p><strong>Viagens ativas:</strong> $viagensAtivas</p>";
    
    // Verificar dados na tabela de rastreamento
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real");
    $pontosGPS = $stmt->fetch()['total'];
    
    echo "<p><strong>Pontos GPS salvos:</strong> $pontosGPS</p>";
    
    // Verificar últimos pontos
    $stmt = $pdo->query("SELECT * FROM rastreamento_tempo_real ORDER BY id DESC LIMIT 10");
    $ultimosPontos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if ($ultimosPontos) {
        echo "<h3>Últimos 10 pontos GPS:</h3>";
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><th>ID</th><th>Viagem</th><th>Latitude</th><th>Longitude</th><th>Velocidade</th><th>Timestamp</th><th>Idade</th></tr>";
        
        foreach ($ultimosPontos as $ponto) {
            $idade = time() - strtotime($ponto['timestamp']);
            $idadeFormatada = $idade < 60 ? "$idade segundos" : round($idade/60, 1) . " minutos";
            
            echo "<tr>";
            echo "<td>{$ponto['id']}</td>";
            echo "<td>{$ponto['viagem_id']}</td>";
            echo "<td>{$ponto['latitude']}</td>";
            echo "<td>{$ponto['longitude']}</td>";
            echo "<td>{$ponto['velocidade']}</td>";
            echo "<td>{$ponto['timestamp']}</td>";
            echo "<td>$idadeFormatada</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ <strong>Nenhum ponto GPS encontrado!</strong></p>";
    }
    
    echo "<h2>2. Teste de conectividade</h2>";
    
    // Testar se o endpoint está acessível
    $url = 'https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php?acao=atualizar-posicao';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    
    $result = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);
    curl_close($ch);
    
    if ($error) {
        echo "<p>❌ <strong>Erro de conectividade:</strong> $error</p>";
    } else {
        echo "<p>✅ <strong>Endpoint acessível:</strong> HTTP $httpCode</p>";
    }
    
    echo "<h2>3. Diagnóstico do problema</h2>";
    
    if ($pontosGPS == 0) {
        echo "<div style='background: #ffebee; padding: 15px; border-radius: 5px;'>";
        echo "<h3>🚨 PROBLEMA IDENTIFICADO</h3>";
        echo "<p><strong>Nenhum ponto GPS está sendo salvo na tabela!</strong></p>";
        echo "<p>Possíveis causas:</p>";
        echo "<ul>";
        echo "<li>❌ App Android não está enviando dados para o servidor</li>";
        echo "<li>❌ Endpoint 'atualizar-posicao' não está funcionando</li>";
        echo "<li>❌ LocationForegroundService não está ativo</li>";
        echo "<li>❌ Problema de conectividade entre app e servidor</li>";
        echo "</ul>";
        echo "</div>";
        
        echo "<h3>🔧 Soluções para testar:</h3>";
        echo "<ol>";
        echo "<li><strong>Verificar logs do Android:</strong> Abra o app e veja se há erros no logcat</li>";
        echo "<li><strong>Testar endpoint manualmente:</strong> <a href='testar-rastreamento-tempo-real.php' target='_blank'>Clique aqui</a></li>";
        echo "<li><strong>Verificar permissões:</strong> GPS e internet devem estar habilitados</li>";
        echo "<li><strong>Reiniciar app:</strong> Feche e abra o app novamente</li>";
        echo "</ol>";
        
    } else {
        echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
        echo "<h3>✅ SISTEMA FUNCIONANDO</h3>";
        echo "<p><strong>Pontos GPS estão sendo salvos!</strong></p>";
        echo "<p>Total de pontos: $pontosGPS</p>";
        echo "</div>";
    }
    
    echo "<h2>4. Verificar viagens com trajeto</h2>";
    
    $stmt = $pdo->query("SELECT id, cliente, tecnico_id, trajeto, data_inicio FROM viagens WHERE data_fim IS NULL ORDER BY data_inicio DESC LIMIT 5");
    $viagensAtivas = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if ($viagensAtivas) {
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><th>ID</th><th>Cliente</th><th>Técnico</th><th>Início</th><th>Pontos no Trajeto</th><th>Pontos GPS</th></tr>";
        
        foreach ($viagensAtivas as $viagem) {
            $trajeto = json_decode($viagem['trajeto'], true);
            $pontosTrajeto = is_array($trajeto) ? count($trajeto) : 0;
            
            // Contar pontos GPS para esta viagem
            $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = ?");
            $stmt->execute([$viagem['id']]);
            $pontosGPS = $stmt->fetch()['total'];
            
            echo "<tr>";
            echo "<td>{$viagem['id']}</td>";
            echo "<td>{$viagem['cliente']}</td>";
            echo "<td>{$viagem['tecnico_id']}</td>";
            echo "<td>{$viagem['data_inicio']}</td>";
            echo "<td>$pontosTrajeto</td>";
            echo "<td>$pontosGPS</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Nenhuma viagem ativa encontrada</p>";
    }
    
    echo "<h2>5. Logs de erro recentes</h2>";
    
    // Verificar se há logs de erro no PHP
    $logFile = '/var/log/apache2/error.log'; // Ajustar conforme necessário
    if (file_exists($logFile)) {
        $logs = file_get_contents($logFile);
        $linhas = explode("\n", $logs);
        $linhasGPS = array_filter($linhas, function($linha) {
            return strpos($linha, 'atualizar-posicao') !== false || 
                   strpos($linha, 'rastreamento') !== false ||
                   strpos($linha, 'GPS') !== false;
        });
        
        if ($linhasGPS) {
            echo "<h4>Logs relacionados ao GPS (últimas 10):</h4>";
            echo "<pre style='background: #f5f5f5; padding: 10px; border-radius: 5px;'>";
            $linhasGPS = array_slice($linhasGPS, -10);
            foreach ($linhasGPS as $linha) {
                echo htmlspecialchars($linha) . "\n";
            }
            echo "</pre>";
        } else {
            echo "<p>Nenhum log de erro relacionado ao GPS encontrado</p>";
        }
    } else {
        echo "<p>Arquivo de log não encontrado: $logFile</p>";
    }
    
} catch (Exception $e) {
    echo "<p>❌ Erro: " . $e->getMessage() . "</p>";
}

echo "<hr>";
echo "<p><strong>Última atualização:</strong> " . date('d/m/Y H:i:s') . "</p>";
echo "<p><a href='javascript:location.reload()'>🔄 Atualizar página</a></p>";
?>
