<?php
/**
 * 📋 Checklist para verificar se GPS está funcionando nas novas viagens
 * Use este script para monitorar viagens recentes
 */

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

// Configurações do banco
$config = [
    'host' => 'localhost',
    'dbname' => 'pinheir3_controle_frotasV1.1',
    'username' => 'pinheir3_admin', 
    'password' => '080880Gelboy'
];

try {
    $pdo = new PDO(
        "mysql:host={$config['host']};dbname={$config['dbname']};charset=utf8mb4",
        $config['username'],
        $config['password'],
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    
    echo "<h2>📋 Checklist GPS - Verificar Viagens Recentes</h2>";
    echo "<p><em>Use este relatório para confirmar que novas viagens estão gravando GPS corretamente</em></p>";
    
    // 1. Viagens dos últimos 7 dias
    echo "<h3>1. 📅 Viagens dos últimos 7 dias:</h3>";
    $stmt = $pdo->query("
        SELECT 
            v.id, 
            v.cliente, 
            v.data_inicio, 
            v.data_fim,
            COUNT(r.id) as pontos_gps,
            CASE 
                WHEN COUNT(r.id) = 0 THEN '❌ SEM GPS'
                WHEN COUNT(r.id) < 5 THEN '⚠️ POUCOS PONTOS'
                ELSE CONCAT('✅ ', COUNT(r.id), ' pontos')
            END as status_gps,
            CASE 
                WHEN v.data_fim IS NULL THEN '🔄 EM ANDAMENTO'
                ELSE '✅ FINALIZADA'
            END as status_viagem
        FROM viagens v 
        LEFT JOIN rastreamento_tempo_real r ON v.id = r.viagem_id 
        WHERE v.data_inicio >= DATE_SUB(NOW(), INTERVAL 7 DAY)
        GROUP BY v.id 
        ORDER BY v.data_inicio DESC
    ");
    $viagensRecentes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($viagensRecentes)) {
        echo "<div style='background:#fff3cd;padding:10px;border-radius:5px;margin:10px 0;'>";
        echo "⚠️ Nenhuma viagem encontrada nos últimos 7 dias.";
        echo "</div>";
    } else {
        echo "<table border='1' style='border-collapse:collapse;margin:10px 0;width:100%;'>";
        echo "<tr style='background:#f8f9fa;'>";
        echo "<th>ID</th><th>Cliente</th><th>Data Início</th><th>Status Viagem</th><th>Status GPS</th><th>Ações</th>";
        echo "</tr>";
        
        $problemasGPS = 0;
        foreach ($viagensRecentes as $viagem) {
            $corLinha = '';
            if ($viagem['pontos_gps'] == 0) {
                $corLinha = 'background:#ffe8e8;';
                $problemasGPS++;
            } elseif ($viagem['pontos_gps'] < 5) {
                $corLinha = 'background:#fff3cd;';
            }
            
            echo "<tr style='$corLinha'>";
            echo "<td><strong>" . $viagem['id'] . "</strong></td>";
            echo "<td>" . htmlspecialchars($viagem['cliente']) . "</td>";
            echo "<td>" . $viagem['data_inicio'] . "</td>";
            echo "<td>" . $viagem['status_viagem'] . "</td>";
            echo "<td>" . $viagem['status_gps'] . "</td>";
            echo "<td>";
            echo "<a href='detalhes-viagem.html?id=" . $viagem['id'] . "' target='_blank' style='background:#007bff;color:white;padding:4px 8px;text-decoration:none;border-radius:3px;font-size:12px;'>Ver</a>";
            if ($viagem['pontos_gps'] == 0) {
                echo " <a href='criar-gps-viagem-75.php?viagem_id=" . $viagem['id'] . "' style='background:#dc3545;color:white;padding:4px 8px;text-decoration:none;border-radius:3px;font-size:12px;'>Corrigir</a>";
            }
            echo "</td>";
            echo "</tr>";
        }
        echo "</table>";
        
        // Resumo
        $totalViagens = count($viagensRecentes);
        $viagensComGPS = $totalViagens - $problemasGPS;
        $percentualSucesso = $totalViagens > 0 ? round(($viagensComGPS / $totalViagens) * 100, 1) : 0;
        
        echo "<div style='background:" . ($percentualSucesso >= 90 ? '#e8f5e8' : ($percentualSucesso >= 70 ? '#fff3cd' : '#ffe8e8')) . ";padding:15px;border-radius:5px;margin:15px 0;'>";
        echo "<h4>📊 Resumo GPS (últimos 7 dias):</h4>";
        echo "<strong>Total de viagens:</strong> $totalViagens<br>";
        echo "<strong>Com GPS funcionando:</strong> $viagensComGPS<br>";
        echo "<strong>Com problemas:</strong> $problemasGPS<br>";
        echo "<strong>Taxa de sucesso:</strong> $percentualSucesso%<br>";
        
        if ($percentualSucesso >= 90) {
            echo "<br>🎯 <strong style='color:green;'>EXCELENTE!</strong> GPS funcionando corretamente na maioria das viagens.";
        } elseif ($percentualSucesso >= 70) {
            echo "<br>⚠️ <strong style='color:orange;'>ATENÇÃO!</strong> Algumas viagens com problemas de GPS.";
        } else {
            echo "<br>🚨 <strong style='color:red;'>PROBLEMA!</strong> Muitas viagens sem GPS. Verificar configuração do app.";
        }
        echo "</div>";
    }
    
    // 2. Últimos pontos GPS recebidos
    echo "<h3>2. 📡 Últimos pontos GPS recebidos:</h3>";
    $stmt = $pdo->query("
        SELECT 
            r.viagem_id,
            v.cliente,
            r.timestamp,
            r.latitude,
            r.longitude,
            r.velocidade,
            TIMESTAMPDIFF(MINUTE, r.timestamp, NOW()) as minutos_atras
        FROM rastreamento_tempo_real r
        JOIN viagens v ON r.viagem_id = v.id
        ORDER BY r.timestamp DESC
        LIMIT 10
    ");
    $ultimosGPS = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($ultimosGPS)) {
        echo "<div style='background:#ffe8e8;padding:10px;border-radius:5px;margin:10px 0;'>";
        echo "❌ Nenhum ponto GPS encontrado no sistema!";
        echo "</div>";
    } else {
        echo "<table border='1' style='border-collapse:collapse;margin:10px 0;width:100%;'>";
        echo "<tr style='background:#f8f9fa;'>";
        echo "<th>Viagem</th><th>Cliente</th><th>Timestamp</th><th>Há quantos min</th><th>Velocidade</th><th>Status</th>";
        echo "</tr>";
        
        foreach ($ultimosGPS as $gps) {
            $corStatus = '';
            $statusTexto = '';
            if ($gps['minutos_atras'] < 60) {
                $corStatus = 'color:green;';
                $statusTexto = '🟢 Recente';
            } elseif ($gps['minutos_atras'] < 1440) { // 24h
                $corStatus = 'color:orange;';
                $statusTexto = '🟡 Algumas horas';
            } else {
                $corStatus = 'color:red;';
                $statusTexto = '🔴 Antigo';
            }
            
            echo "<tr>";
            echo "<td><strong>" . $gps['viagem_id'] . "</strong></td>";
            echo "<td>" . htmlspecialchars($gps['cliente']) . "</td>";
            echo "<td>" . $gps['timestamp'] . "</td>";
            echo "<td>" . $gps['minutos_atras'] . " min</td>";
            echo "<td>" . $gps['velocidade'] . " km/h</td>";
            echo "<td style='$corStatus'>" . $statusTexto . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 3. Checklist para próximas viagens
    echo "<h3>3. ✅ Checklist para garantir GPS nas próximas viagens:</h3>";
    echo "<div style='background:#f0f8ff;padding:15px;border-radius:5px;margin:15px 0;'>";
    echo "<h4>📱 ANTES DE INICIAR A VIAGEM:</h4>";
    echo "<ol>";
    echo "<li>✅ <strong>Verificar permissão GPS</strong> - Deve estar \"Permitir sempre\"</li>";
    echo "<li>✅ <strong>Testar localização</strong> - GPS deve funcionar no app</li>";
    echo "<li>✅ <strong>Verificar internet</strong> - WiFi ou dados móveis ativos</li>";
    echo "<li>✅ <strong>Configurar servidor</strong> - URL correta no app</li>";
    echo "</ol>";
    
    echo "<h4>🔄 DURANTE A VIAGEM:</h4>";
    echo "<ol>";
    echo "<li>✅ <strong>Notificação ativa</strong> - \"🛡️ Rastreamento Protegido ATIVO\"</li>";
    echo "<li>✅ <strong>Não fechar app</strong> - Minimizar é OK, fechar não</li>";
    echo "<li>✅ <strong>Manter tela desbloqueada</strong> ocasionalmente</li>";
    echo "<li>✅ <strong>Verificar conexão</strong> - Se internet cair, GPS para de enviar</li>";
    echo "</ol>";
    
    echo "<h4>✅ APÓS FINALIZAR:</h4>";
    echo "<ol>";
    echo "<li>✅ <strong>Verificar tracejado</strong> - Entrar no retaguarda e ver se aparece</li>";
    echo "<li>✅ <strong>Se não aparecer</strong> - Anotar ID da viagem e investigar</li>";
    echo "<li>✅ <strong>Reportar problemas</strong> - Para melhoria contínua</li>";
    echo "</ol>";
    echo "</div>";
    
    // 4. Script de monitoramento automático
    echo "<h3>4. 🤖 Monitoramento Automático:</h3>";
    echo "<div style='background:#fff3cd;padding:10px;border-radius:5px;margin:10px 0;'>";
    echo "<p><strong>💡 Dica:</strong> Adicione este script aos favoritos e execute diariamente para monitorar a qualidade do GPS.</p>";
    echo "<p><strong>URL para bookmarks:</strong> <code>https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/checklist-gps-viagens.php</code></p>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div style='background:#ffe8e8;padding:10px;border-radius:5px;margin:10px 0;'>";
    echo "❌ Erro: " . htmlspecialchars($e->getMessage());
    echo "</div>";
}
?>

<script>
// Auto-refresh a cada 30 segundos se houver viagem em andamento
setTimeout(function() {
    const viagensEmAndamento = document.querySelectorAll('td:contains("EM ANDAMENTO")').length;
    if (viagensEmAndamento > 0) {
        window.location.reload();
    }
}, 30000);
</script> 
