<?php
/**
 * Verificar se o nome do motorista está sendo salvo nas atualizações GPS
 */

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

// Configuração do banco
$host = 'localhost';
$dbname = 'pinheir3_controle_frotasV1.1';
$username = 'pinheir3_admin';
$password = '080880Gelboy';

echo "<!DOCTYPE html>
<html>
<head>
    <title>🔍 Verificar Nome do Motorista</title>
    <style>
        body { font-family: Arial; margin: 20px; }
        .card { border: 1px solid #ddd; padding: 15px; margin: 10px 0; border-radius: 8px; }
        .success { background: #d4edda; color: #155724; }
        .error { background: #f8d7da; color: #721c24; }
        .info { background: #cce7ff; color: #004085; }
        table { border-collapse: collapse; width: 100%; margin: 10px 0; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background: #f8f9fa; }
        .nome-motorista { font-weight: bold; color: #007bff; }
    </style>
</head>
<body>";

echo "<h1>🔍 Verificação: Nome do Motorista nas Atualizações GPS</h1>";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // 1. Verificar viagens ativas
    echo "<div class='card info'>";
    echo "<h3>🚗 Viagens Ativas</h3>";
    
    $stmt = $pdo->query("
        SELECT id, cliente, tecnico_id, data_inicio, 
               latitude_inicial, longitude_inicial,
               JSON_LENGTH(trajeto) as total_pontos_trajeto
        FROM viagens 
        WHERE data_fim IS NULL 
        ORDER BY data_inicio DESC
        LIMIT 5
    ");
    $viagensAtivas = $stmt->fetchAll();
    
    if (empty($viagensAtivas)) {
        echo "<p>📭 Nenhuma viagem ativa encontrada.</p>";
    } else {
        echo "<table>";
        echo "<tr><th>ID</th><th>Cliente</th><th>Técnico ID</th><th>Início</th><th>Localização</th><th>Pontos Trajeto</th></tr>";
        foreach ($viagensAtivas as $viagem) {
            echo "<tr>";
            echo "<td>{$viagem['id']}</td>";
            echo "<td>{$viagem['cliente']}</td>";
            echo "<td class='nome-motorista'>{$viagem['tecnico_id']}</td>";
            echo "<td>" . date('d/m H:i', strtotime($viagem['data_inicio'])) . "</td>";
            echo "<td>{$viagem['latitude_inicial']}, {$viagem['longitude_inicial']}</td>";
            echo "<td>{$viagem['total_pontos_trajeto']} pontos</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    echo "</div>";
    
    // 2. Verificar últimos pontos GPS com nome do motorista
    echo "<div class='card info'>";
    echo "<h3>📍 Últimos Pontos GPS com Nome do Motorista</h3>";
    
    $stmt = $pdo->query("
        SELECT 
            rt.id,
            rt.tecnico_id as nome_motorista,
            rt.viagem_id,
            rt.latitude,
            rt.longitude,
            rt.velocidade,
            rt.timestamp_gps,
            v.cliente
        FROM rastreamento_tempo_real rt
        LEFT JOIN viagens v ON rt.viagem_id = v.id
        ORDER BY rt.timestamp_gps DESC
        LIMIT 10
    ");
    $pontosGps = $stmt->fetchAll();
    
    if (empty($pontosGps)) {
        echo "<p>📭 Nenhum ponto GPS encontrado na tabela rastreamento_tempo_real.</p>";
    } else {
        echo "<table>";
        echo "<tr><th>ID</th><th>Nome Motorista</th><th>Viagem</th><th>Cliente</th><th>Localização</th><th>Velocidade</th><th>Timestamp</th></tr>";
        foreach ($pontosGps as $ponto) {
            echo "<tr>";
            echo "<td>{$ponto['id']}</td>";
            echo "<td class='nome-motorista'>{$ponto['nome_motorista']}</td>";
            echo "<td>{$ponto['viagem_id']}</td>";
            echo "<td>{$ponto['cliente']}</td>";
            echo "<td>" . number_format($ponto['latitude'], 6) . ", " . number_format($ponto['longitude'], 6) . "</td>";
            echo "<td>" . number_format($ponto['velocidade'], 1) . " km/h</td>";
            echo "<td>" . date('d/m H:i:s', strtotime($ponto['timestamp_gps'])) . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    echo "</div>";
    
    // 3. Verificar status atual dos técnicos
    echo "<div class='card info'>";
    echo "<h3>👥 Status Atual dos Técnicos</h3>";
    
    $stmt = $pdo->query("
        SELECT 
            st.tecnico_id as nome_motorista,
            st.ultimo_ping,
            st.latitude_atual,
            st.longitude_atual,
            st.velocidade_atual,
            st.viagem_ativa,
            st.status_conexao,
            v.cliente as viagem_cliente
        FROM status_tecnicos st
        LEFT JOIN viagens v ON st.viagem_ativa = v.id
        ORDER BY st.ultimo_ping DESC
    ");
    $statusTecnicos = $stmt->fetchAll();
    
    if (empty($statusTecnicos)) {
        echo "<p>📭 Nenhum status de técnico encontrado.</p>";
    } else {
        echo "<table>";
        echo "<tr><th>Nome Motorista</th><th>Último Ping</th><th>Localização Atual</th><th>Velocidade</th><th>Viagem Ativa</th><th>Status</th></tr>";
        foreach ($statusTecnicos as $status) {
            echo "<tr>";
            echo "<td class='nome-motorista'>{$status['nome_motorista']}</td>";
            echo "<td>" . date('d/m H:i:s', strtotime($status['ultimo_ping'])) . "</td>";
            $locAtual = $status['latitude_atual'] ? number_format($status['latitude_atual'], 6) . ", " . number_format($status['longitude_atual'], 6) : "N/A";
            echo "<td>$locAtual</td>";
            echo "<td>" . number_format($status['velocidade_atual'], 1) . " km/h</td>";
            $viagemAtiva = $status['viagem_ativa'] ? "#{$status['viagem_ativa']} - {$status['viagem_cliente']}" : "Nenhuma";
            echo "<td>$viagemAtiva</td>";
            echo "<td>{$status['status_conexao']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    echo "</div>";
    
    // 4. Analisar trajetos com nomes de motorista
    echo "<div class='card info'>";
    echo "<h3>🛣️ Análise de Trajetos com Nome do Motorista</h3>";
    
    $stmt = $pdo->query("
        SELECT 
            v.id,
            v.cliente,
            v.tecnico_id,
            JSON_LENGTH(v.trajeto) as total_pontos,
            v.trajeto
        FROM viagens v
        WHERE v.trajeto IS NOT NULL 
        AND JSON_LENGTH(v.trajeto) > 0
        AND v.data_fim IS NULL
        ORDER BY v.data_inicio DESC
        LIMIT 3
    ");
    $viagensTrajeto = $stmt->fetchAll();
    
    if (empty($viagensTrajeto)) {
        echo "<p>📭 Nenhuma viagem com trajeto encontrada.</p>";
    } else {
        foreach ($viagensTrajeto as $viagem) {
            echo "<h4>Viagem #{$viagem['id']} - {$viagem['cliente']}</h4>";
            echo "<p><strong>Técnico:</strong> <span class='nome-motorista'>{$viagem['tecnico_id']}</span></p>";
            echo "<p><strong>Total de pontos no trajeto:</strong> {$viagem['total_pontos']}</p>";
            
            $trajeto = json_decode($viagem['trajeto'], true);
            if (!empty($trajeto)) {
                echo "<p><strong>Últimos 3 pontos do trajeto:</strong></p>";
                echo "<table style='font-size: 12px;'>";
                echo "<tr><th>Timestamp</th><th>Lat, Lng</th><th>Velocidade</th><th>Nome Motorista</th></tr>";
                
                $ultimosPontos = array_slice($trajeto, -3);
                foreach ($ultimosPontos as $ponto) {
                    echo "<tr>";
                    echo "<td>" . ($ponto['timestamp'] ?? 'N/A') . "</td>";
                    echo "<td>" . number_format($ponto['latitude'], 6) . ", " . number_format($ponto['longitude'], 6) . "</td>";
                    echo "<td>" . ($ponto['velocidade'] ? number_format($ponto['velocidade'], 1) . " km/h" : 'N/A') . "</td>";
                    $nomePonto = isset($ponto['motorista_nome']) ? $ponto['motorista_nome'] : 'Não informado';
                    echo "<td class='nome-motorista'>$nomePonto</td>";
                    echo "</tr>";
                }
                echo "</table>";
            }
        }
    }
    echo "</div>";
    
    // 5. Resumo estatístico
    echo "<div class='card success'>";
    echo "<h3>📊 Resumo Estatístico</h3>";
    
    // Contar pontos GPS por motorista
    $stmt = $pdo->query("
        SELECT tecnico_id as nome_motorista, COUNT(*) as total_pontos
        FROM rastreamento_tempo_real 
        GROUP BY tecnico_id 
        ORDER BY total_pontos DESC
    ");
    $estatisticas = $stmt->fetchAll();
    
    echo "<h4>Pontos GPS por Motorista:</h4>";
    if (empty($estatisticas)) {
        echo "<p>📭 Nenhum dado estatístico encontrado.</p>";
    } else {
        echo "<ul>";
        foreach ($estatisticas as $stat) {
            echo "<li><strong class='nome-motorista'>{$stat['nome_motorista']}</strong>: {$stat['total_pontos']} pontos GPS</li>";
        }
        echo "</ul>";
    }
    
    // Verificar se há pontos recentes (últimos 5 minutos)
    $stmt = $pdo->query("
        SELECT COUNT(*) as pontos_recentes
        FROM rastreamento_tempo_real 
        WHERE timestamp_gps > DATE_SUB(NOW(), INTERVAL 5 MINUTE)
    ");
    $pontosRecentes = $stmt->fetch()['pontos_recentes'];
    
    echo "<h4>Atividade Recente:</h4>";
    echo "<p><strong>$pontosRecentes</strong> pontos GPS recebidos nos últimos 5 minutos</p>";
    
    if ($pontosRecentes > 0) {
        echo "<p style='color: green;'>✅ Sistema está recebendo dados GPS em tempo real!</p>";
    } else {
        echo "<p style='color: orange;'>⚠️ Nenhum dado GPS recente. Verifique se há viagens ativas.</p>";
    }
    
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div class='card error'>";
    echo "<h3>❌ Erro</h3>";
    echo "<p>Erro ao conectar ao banco: " . $e->getMessage() . "</p>";
    echo "</div>";
}

echo "<div class='card info'>";
echo "<h4>ℹ️ Como Interpretar os Resultados</h4>";
echo "<ul>";
echo "<li><strong>Viagens Ativas:</strong> Devem mostrar o nome do técnico (não apenas ID numérico)</li>";
echo "<li><strong>Pontos GPS:</strong> Devem ter o nome do motorista na coluna 'Nome Motorista'</li>";
echo "<li><strong>Status Técnicos:</strong> Devem mostrar nomes reais dos motoristas</li>";
echo "<li><strong>Trajetos:</strong> Cada ponto deve ter o campo 'motorista_nome' preenchido</li>";
echo "</ul>";
echo "<p><strong>✅ Sucesso:</strong> Se você vê nomes como 'Administrador', 'João Silva', etc.</p>";
echo "<p><strong>❌ Problema:</strong> Se você vê apenas números como '1', '2', etc.</p>";
echo "</div>";

echo "</body></html>";
?> 
