<?php
/**
 * 🔍 VERIFICAR ESTRUTURA VIAGEM/ROTA
 * Script para entender a relação entre viagem #278 e rota #80
 */
header('Content-Type: text/html; charset=utf-8');

echo "<h1>🔍 VERIFICAR ESTRUTURA VIAGEM/ROTA</h1>";

try {
    require_once 'conexao.php';
    $pdo = conectarBanco();
    
    // 1. VERIFICAR VIAGEM #278
    echo "<h2>📊 1. Verificando Viagem #278</h2>";
    $sql = "SELECT * FROM viagens WHERE id = 278";
    $stmt = $pdo->query($sql);
    $viagem = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($viagem) {
        echo "<p>✅ Viagem #278 encontrada!</p>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        foreach ($viagem as $campo => $valor) {
            echo "<tr><td>{$campo}</td><td>{$valor}</td></tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Viagem #278 não encontrada!</p>";
        exit;
    }
    
    // 2. VERIFICAR ROTA #80
    echo "<h2>🗺️ 2. Verificando Rota #80</h2>";
    $sql = "SELECT * FROM solicitacoes_rotas WHERE id = 80";
    $stmt = $pdo->query($sql);
    $rota = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($rota) {
        echo "<p>✅ Rota #80 encontrada!</p>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        foreach ($rota as $campo => $valor) {
            echo "<tr><td>{$campo}</td><td>{$valor}</td></tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Rota #80 não encontrada!</p>";
    }
    
    // 3. VERIFICAR RELAÇÃO ENTRE ELAS
    echo "<h2>🔗 3. Verificando Relação Viagem/Rota</h2>";
    $sql = "SELECT * FROM rota_viagens WHERE viagem_id = 278 OR solicitacao_rota_id = 80";
    $stmt = $pdo->query($sql);
    $relacoes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<p>📊 Relações encontradas: " . count($relacoes) . "</p>";
    if (count($relacoes) > 0) {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Viagem ID</th><th>Rota ID</th></tr>";
        foreach ($relacoes as $rel) {
            echo "<tr>";
            echo "<td>{$rel['viagem_id']}</td>";
            echo "<td>{$rel['solicitacao_rota_id']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Nenhuma relação encontrada!</p>";
    }
    
    // 4. VERIFICAR COMO O DASHBOARD EXIBE
    echo "<h2>📊 4. Verificando Como o Dashboard Exibe</h2>";
    
    // Testar API de viagens individuais
    echo "<h3>🔍 API ?acao=viagens (viagens individuais)</h3>";
    $sql = "SELECT v.id, v.cliente, v.km_gps_final, v.km_gps_real 
            FROM viagens v 
            LEFT JOIN rota_viagens rv ON v.id = rv.viagem_id 
            WHERE rv.viagem_id IS NULL 
            AND v.id = 278";
    $stmt = $pdo->query($sql);
    $viagemIndividual = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($viagemIndividual) {
        echo "<p>✅ Viagem #278 aparece como viagem individual</p>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        foreach ($viagemIndividual as $campo => $valor) {
            echo "<tr><td>{$campo}</td><td>{$valor}</td></tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Viagem #278 NÃO aparece como viagem individual</p>";
    }
    
    // Testar API de rotas
    echo "<h3>🗺️ API ?acao=viagens (rotas)</h3>";
    $sql = "SELECT sr.id as rota_id, sr.titulo, sr.status,
                   SUM(v.km_gps_final) as km_gps_final_total,
                   SUM(COALESCE(v.km_gps_real, v.km_gps_final)) as km_gps_real_total
            FROM solicitacoes_rotas sr
            INNER JOIN rota_viagens rv ON sr.id = rv.solicitacao_rota_id
            INNER JOIN viagens v ON rv.viagem_id = v.id
            WHERE sr.id = 80
            GROUP BY sr.id";
    $stmt = $pdo->query($sql);
    $rotaAgregada = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($rotaAgregada) {
        echo "<p>✅ Rota #80 aparece como rota agregada</p>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        foreach ($rotaAgregada as $campo => $valor) {
            echo "<tr><td>{$campo}</td><td>{$valor}</td></tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Rota #80 NÃO aparece como rota agregada</p>";
    }
    
    // 5. SOLUÇÃO: RESTAURAR A RELAÇÃO
    echo "<h2>🔧 5. Solução: Restaurar Relação</h2>";
    echo "<p>Como a viagem #278 e a rota #80 são a mesma coisa, vamos restaurar a relação.</p>";
    
    // Verificar se a relação já existe
    $sql = "SELECT COUNT(*) as total FROM rota_viagens WHERE viagem_id = 278 AND solicitacao_rota_id = 80";
    $stmt = $pdo->query($sql);
    $resultado = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($resultado['total'] == 0) {
        echo "<p>🔄 Restaurando relação viagem #278 ↔ rota #80...</p>";
        
        $sql = "INSERT INTO rota_viagens (viagem_id, solicitacao_rota_id) VALUES (278, 80)";
        $stmt = $pdo->prepare($sql);
        $resultado = $stmt->execute();
        
        if ($resultado) {
            echo "<p>✅ Relação restaurada com sucesso!</p>";
            echo "<p>🔄 Agora a viagem #278 deve aparecer como rota #80 no dashboard.</p>";
        } else {
            echo "<p>❌ Erro ao restaurar relação!</p>";
        }
    } else {
        echo "<p>✅ Relação já existe!</p>";
    }
    
    // 6. VERIFICAÇÃO FINAL
    echo "<h2>🎯 6. Verificação Final</h2>";
    $sql = "SELECT COUNT(*) as total FROM rota_viagens WHERE viagem_id = 278 AND solicitacao_rota_id = 80";
    $stmt = $pdo->query($sql);
    $resultado = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($resultado['total'] > 0) {
        echo "<p>✅ Relação viagem #278 ↔ rota #80 restaurada!</p>";
        echo "<p>🔄 <strong>Próximo passo:</strong> Recarregue o dashboard (Ctrl+F5) e verifique se a rota #80 aparece corretamente!</p>";
    } else {
        echo "<p>❌ Relação não foi restaurada!</p>";
    }
    
} catch (Exception $e) {
    echo "<p>❌ Erro: " . $e->getMessage() . "</p>";
}

echo "<hr>";
echo "<p><strong>🔧 Próximos passos:</strong></p>";
echo "<ol>";
echo "<li>Recarregue o dashboard (Ctrl+F5)</li>";
echo "<li>Verifique se a rota #80 aparece corretamente</li>";
echo "<li>Verifique se o KM GPS está correto (4.670 km)</li>";
echo "</ol>";
?>
