<?php
/**
 * Teste específico para diagnóstico da Viagem ID 68
 */

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

// Conectar ao banco
function conectarBanco() {
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    try {
        $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password, [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        ]);
        return $pdo;
    } catch (PDOException $e) {
        throw new Exception('Erro de conexão: ' . $e->getMessage());
    }
}

echo "<h1>🔍 Diagnóstico da Viagem ID 68</h1>";

try {
    $pdo = conectarBanco();
    echo "<p>✅ <strong>Conexão com banco:</strong> OK</p>";
    
    // 1. Verificar se a viagem 68 existe
    echo "<h3>1️⃣ Verificando se a viagem 68 existe:</h3>";
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = 68");
    $stmt->execute();
    $viagem = $stmt->fetch();
    
    if ($viagem) {
        echo "<p>✅ <strong>Viagem 68 encontrada!</strong></p>";
        echo "<pre>";
        print_r($viagem);
        echo "</pre>";
    } else {
        echo "<p>❌ <strong>Viagem 68 NÃO encontrada!</strong></p>";
        
        // Verificar que viagens existem
        echo "<h3>2️⃣ Verificando que viagens existem:</h3>";
        $stmt = $pdo->query("SELECT id, cliente, data_inicio, data_fim FROM viagens ORDER BY id DESC LIMIT 10");
        $todasViagens = $stmt->fetchAll();
        
        if ($todasViagens) {
            echo "<p>📋 <strong>Últimas 10 viagens encontradas:</strong></p>";
            echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
            echo "<tr><th>ID</th><th>Cliente</th><th>Data Início</th><th>Data Fim</th></tr>";
            foreach ($todasViagens as $v) {
                echo "<tr>";
                echo "<td>" . $v['id'] . "</td>";
                echo "<td>" . $v['cliente'] . "</td>";
                echo "<td>" . $v['data_inicio'] . "</td>";
                echo "<td>" . ($v['data_fim'] ?: 'Em andamento') . "</td>";
                echo "</tr>";
            }
            echo "</table>";
        } else {
            echo "<p>❌ <strong>Nenhuma viagem encontrada!</strong></p>";
        }
        
        exit();
    }
    
    // 2. Testar a consulta da API exata
    echo "<h3>2️⃣ Testando consulta da API (mesma query):</h3>";
    $stmt = $pdo->prepare("
        SELECT 
            v.id,
            v.cliente,
            v.motivo,
            v.tecnico_id,
            v.veiculo_id,
            v.km_inicial,
            v.km_final,
            v.km_gps_final,
            v.data_inicio,
            v.data_fim,
            v.latitude_inicial,
            v.longitude_inicial,
            v.latitude_final,
            v.longitude_final,
            v.endereco_inicial,
            v.endereco_final,
            v.observacoes,
            COALESCE(m.nome, 'Técnico não identificado') as tecnico_nome,
            COALESCE(m.matricula, 'N/A') as tecnico_matricula,
            COALESCE(ve.modelo, 'Veículo não identificado') as veiculo_nome,
            COALESCE(ve.placa, 'N/A') as veiculo_placa,
            CONCAT(COALESCE(ve.modelo, 'Veículo não identificado'), ' - ', COALESCE(ve.placa, 'N/A')) as veiculo_completo,
            v.trajeto,
            v.sincronizado,
            v.created_at,
            v.updated_at
        FROM viagens v
        LEFT JOIN motoristas m ON v.tecnico_id = m.nome
        LEFT JOIN veiculos ve ON v.veiculo_id = ve.id
        WHERE v.id = ?
    ");
    $stmt->execute([68]);
    $viagemAPI = $stmt->fetch();
    
    if ($viagemAPI) {
        echo "<p>✅ <strong>Query da API funcionou!</strong></p>";
        echo "<pre>";
        print_r($viagemAPI);
        echo "</pre>";
    } else {
        echo "<p>❌ <strong>Query da API falhou!</strong></p>";
        
        // Tentar query mais simples
        echo "<h3>3️⃣ Testando query simplificada:</h3>";
        $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = ?");
        $stmt->execute([68]);
        $viagemSimples = $stmt->fetch();
        
        if ($viagemSimples) {
            echo "<p>✅ <strong>Query simples funcionou!</strong></p>";
            echo "<pre>";
            print_r($viagemSimples);
            echo "</pre>";
        }
    }
    
    // 3. Testar a API diretamente
    echo "<h3>3️⃣ Testando API diretamente:</h3>";
    $url = "http://" . $_SERVER['HTTP_HOST'] . "/controlefrota/backend-php/api-simples-v2.php?acao=viagem&id=68";
    echo "<p><strong>URL da API:</strong> <a href='$url' target='_blank'>$url</a></p>";
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    echo "<p><strong>Código HTTP:</strong> $httpCode</p>";
    echo "<p><strong>Resposta da API:</strong></p>";
    echo "<pre>";
    if ($response) {
        $json = json_decode($response, true);
        if ($json) {
            print_r($json);
        } else {
            echo "Resposta não é JSON válido:\n";
            echo htmlspecialchars($response);
        }
    } else {
        echo "Nenhuma resposta recebida";
    }
    echo "</pre>";
    
    // 4. Instruções para resolver
    echo "<h3>4️⃣ Como resolver:</h3>";
    echo "<div style='background: #e7f3ff; padding: 20px; border-radius: 10px; margin: 20px 0;'>";
    echo "<h4>🔧 Se a viagem 68 não existe:</h4>";
    echo "<ol>";
    echo "<li>Acesse uma viagem que existe da lista acima</li>";
    echo "<li>Ou crie uma nova viagem de teste</li>";
    echo "</ol>";
    echo "<h4>🔧 Se a API não funciona:</h4>";
    echo "<ol>";
    echo "<li>Verifique se o servidor está rodando</li>";
    echo "<li>Verifique permissões dos arquivos</li>";
    echo "<li>Verifique logs de erro do Apache/PHP</li>";
    echo "</ol>";
    echo "</div>";
    
    // 5. Criar viagem de teste se necessário
    if (!$viagem) {
        echo "<h3>5️⃣ Criar viagem de teste:</h3>";
        echo "<p><a href='criar-viagem-rapida.php' style='background: #28a745; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;'>✅ Criar Viagem de Teste</a></p>";
    }
    
} catch (Exception $e) {
    echo "<p>❌ <strong>Erro:</strong> " . $e->getMessage() . "</p>";
}
?> 
