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

echo "<h1>🔧 Teste do LocationForegroundService</h1>";

try {
    $pdo = conectarBanco();
    
    // 1. Verificar se a viagem 259 está ativa
    echo "<h2>📋 Status da Viagem 259</h2>";
    $sql = "SELECT id, tecnico_id, cliente, data_inicio, data_fim FROM viagens WHERE id = 259";
    $stmt = $pdo->query($sql);
    $viagem = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($viagem) {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        foreach ($viagem as $campo => $valor) {
            $cor = ($campo == 'data_fim' && $valor === null) ? 'background-color: #e8f5e8;' : '';
            echo "<tr style='$cor'>";
            echo "<td><strong>$campo</strong></td>";
            echo "<td>" . ($valor ?: 'NULL') . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        
        if ($viagem['data_fim'] === null) {
            echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
            echo "<h3>✅ Viagem 259 está ATIVA</h3>";
            echo "<p>O LocationForegroundService deveria estar enviando dados para esta viagem.</p>";
            echo "</div>";
        } else {
            echo "<div style='background: #ffe6e6; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
            echo "<h3>❌ Viagem 259 foi FINALIZADA</h3>";
            echo "<p>O LocationForegroundService não pode enviar dados para uma viagem finalizada.</p>";
            echo "</div>";
        }
    } else {
        echo "<p>❌ Viagem 259 não encontrada!</p>";
    }
    
    // 2. Testar API atualizar-posicao manualmente
    echo "<h2>🔌 Teste Manual da API atualizar-posicao</h2>";
    
    $url = 'https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php';
    $data = [
        'viagem_id' => '259',
        'latitude' => '-10.123456',
        'longitude' => '-48.123456',
        'velocidade' => '25.5',
        'precisao' => '10.0',
        'altitude' => '100.0',
        'battery_level' => '85',
        'timestamp' => date('Y-m-d H:i:s')
    ];
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url . '?acao=atualizar-posicao');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);
    curl_close($ch);
    
    echo "<p><strong>HTTP Code:</strong> $httpCode</p>";
    if ($error) {
        echo "<p><strong>Erro cURL:</strong> $error</p>";
    }
    echo "<p><strong>Resposta da API:</strong></p>";
    echo "<pre>" . htmlspecialchars($response) . "</pre>";
    
    // 3. Verificar se o ponto teste foi salvo
    echo "<h2>✅ Verificar se o ponto teste foi salvo</h2>";
    $sql = "SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = 259";
    $stmt = $pdo->query($sql);
    $total = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
    
    echo "<p><strong>Total de pontos GPS para viagem 259:</strong> $total</p>";
    
    if ($total > 0) {
        echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h3>✅ API FUNCIONANDO!</h3>";
        echo "<p>A API atualizar-posicao está salvando pontos corretamente.</p>";
        echo "<p><strong>Problema:</strong> O LocationForegroundService não está enviando dados.</p>";
        echo "</div>";
        
        // Mostrar último ponto
        $sql = "SELECT * FROM rastreamento_tempo_real WHERE viagem_id = 259 ORDER BY id DESC LIMIT 1";
        $stmt = $pdo->query($sql);
        $ponto = $stmt->fetch(PDO::FETCH_ASSOC);
        
        echo "<h3>📍 Último ponto salvo:</h3>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        foreach ($ponto as $campo => $valor) {
            echo "<tr>";
            echo "<td><strong>$campo</strong></td>";
            echo "<td>" . ($valor ?: 'NULL') . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        
    } else {
        echo "<div style='background: #ffe6e6; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h3>❌ PROBLEMA NA API!</h3>";
        echo "<p>A API atualizar-posicao não está salvando pontos.</p>";
        echo "<p><strong>Possíveis causas:</strong></p>";
        echo "<ul>";
        echo "<li>Erro na API atualizar-posicao</li>";
        echo "<li>Problema de conectividade</li>";
        echo "<li>Dados inválidos sendo enviados</li>";
        echo "</ul>";
        echo "</div>";
    }
    
    // 4. Diagnóstico do LocationForegroundService
    echo "<h2>🔍 Diagnóstico do LocationForegroundService</h2>";
    
    if ($viagem && $viagem['data_fim'] === null) {
        echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h3>⚠️ VIAGEM ATIVA MAS SEM DADOS GPS</h3>";
        echo "<p><strong>Possíveis causas:</strong></p>";
        echo "<ol>";
        echo "<li><strong>LocationForegroundService não iniciado:</strong> O app pode não estar iniciando o serviço</li>";
        echo "<li><strong>Permissões de GPS:</strong> O app pode não ter permissão para acessar GPS</li>";
        echo "<li><strong>Problema de conectividade:</strong> O app pode não conseguir enviar dados para o servidor</li>";
        echo "<li><strong>Erro no serviço:</strong> O LocationForegroundService pode estar com erro</li>";
        echo "<li><strong>App em background:</strong> O sistema pode estar matando o serviço</li>";
        echo "</ol>";
        echo "</div>";
        
        echo "<h3>🔧 SOLUÇÕES:</h3>";
        echo "<ol>";
        echo "<li><strong>Verificar logs do app:</strong> Abra o Android Studio e veja os logs do LocationForegroundService</li>";
        echo "<li><strong>Verificar permissões:</strong> Vá em Configurações > Apps > Controle de Frotas > Permissões</li>";
        echo "<li><strong>Reiniciar o app:</strong> Feche completamente o app e abra novamente</li>";
        echo "<li><strong>Verificar bateria:</strong> Desative otimização de bateria para o app</li>";
        echo "<li><strong>Verificar dados móveis:</strong> Certifique-se que o app tem acesso à internet</li>";
        echo "</ol>";
        
    } else {
        echo "<div style='background: #ffe6e6; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h3>❌ VIAGEM NÃO ATIVA</h3>";
        echo "<p>A viagem 259 não está ativa, por isso o LocationForegroundService não pode enviar dados.</p>";
        echo "<p><strong>Solução:</strong> Crie uma nova viagem ativa para testar.</p>";
        echo "</div>";
    }
    
} catch (Exception $e) {
    echo "<p>❌ Erro: " . $e->getMessage() . "</p>";
}
?>

<div style="margin-top: 20px; padding: 10px; background: #f0f0f0; border-radius: 5px;">
    <h3>🔄 Próximos Passos</h3>
    <p>1. Acesse este script para verificar se a API está funcionando</p>
    <p>2. Verifique os logs do app Android no Android Studio</p>
    <p>3. Teste as permissões e conectividade do app</p>
</div>
