<?php
/**
 * Teste detalhado da API de solicitações para gestores
 * Verificar estrutura da resposta JSON
 */

// Configuração do banco de dados
$dbConfig = [
    'host' => 'localhost',
    'port' => 3306,
    'database' => 'pinheir3_controle_frotasV1.1',
    'username' => 'pinheir3_admin',
    'password' => '080880Gelboy',
    'charset' => 'utf8mb4'
];

// Função para conectar ao banco
function getConnection() {
    global $dbConfig;
    
    try {
        $dsn = sprintf(
            'mysql:host=%s;port=%d;dbname=%s;charset=%s',
            $dbConfig['host'],
            $dbConfig['port'],
            $dbConfig['database'],
            $dbConfig['charset']
        );
        
        $pdo = new PDO($dsn, $dbConfig['username'], $dbConfig['password'], [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES => false
        ]);
        
        return $pdo;
    } catch (PDOException $e) {
        throw $e;
    }
}

// Token simulado para teste
$token = "eyJpZCI6MiwidXN1YXJpbyI6Imdlc3RvciIsIm5pdmVsIjoiZ2VzdG9yIiwiZXhwIjoxNzUyNjc4NDQ2fQ==";

echo "🔍 Testando API de solicitações para gestores\n";
echo "=============================================\n\n";

// Simular requisição HTTP
$url = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api/gestao/gestor-solicitacoes.php?acao=solicitacoes";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $token,
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

echo "📡 Status HTTP: $httpCode\n";
echo "📄 Resposta completa:\n";
echo $response . "\n\n";

// Decodificar JSON para análise
$data = json_decode($response, true);

if ($data && isset($data['data']['solicitacoes_pendentes'])) {
    echo "✅ Estrutura da resposta:\n";
    echo "- success: " . ($data['success'] ? 'true' : 'false') . "\n";
    echo "- total_pendentes: " . $data['data']['total_pendentes'] . "\n";
    
    if (!empty($data['data']['solicitacoes_pendentes'])) {
        $primeira = $data['data']['solicitacoes_pendentes'][0];
        echo "\n📋 Primeira solicitação:\n";
        echo "- ID: " . $primeira['id'] . "\n";
        echo "- Cliente: " . $primeira['cliente'] . "\n";
        echo "- Status: " . $primeira['status'] . "\n";
        echo "- Data criação: " . $primeira['data_criacao'] . "\n";
        
        // Verificar se data_solicitacao existe
        if (isset($primeira['data_solicitacao'])) {
            echo "- Data solicitação: " . $primeira['data_solicitacao'] . " ✅\n";
        } else {
            echo "- Data solicitação: NÃO ENCONTRADA ❌\n";
        }
        
        echo "\n🔍 Todos os campos disponíveis:\n";
        foreach ($primeira as $campo => $valor) {
            echo "- $campo: " . (is_null($valor) ? 'NULL' : $valor) . "\n";
        }
    } else {
        echo "⚠️ Nenhuma solicitação pendente encontrada\n";
    }
} else {
    echo "❌ Erro ao decodificar resposta ou estrutura inesperada\n";
    if ($data) {
        echo "Estrutura recebida:\n";
        print_r($data);
    }
}

echo "\n🔍 Verificando estrutura da tabela solicitacoes_viagem:\n";
try {
    $pdo = getConnection();
    $stmt = $pdo->query("DESCRIBE solicitacoes_viagem");
    $colunas = $stmt->fetchAll();
    
    echo "Colunas da tabela solicitacoes_viagem:\n";
    foreach ($colunas as $coluna) {
        echo "- " . $coluna['Field'] . " (" . $coluna['Type'] . ")\n";
    }
} catch (Exception $e) {
    echo "❌ Erro ao verificar estrutura da tabela: " . $e->getMessage() . "\n";
} 
