<?php
require_once 'config/database.php';

echo "<h1>Verificação da Estrutura do Banco de Dados</h1>";

try {
    $pdo = Database::getConnection();
    
    echo "<h2>1. Verificando tabelas existentes</h2>";
    
    $stmt = $pdo->query("SHOW TABLES");
    $tabelas = $stmt->fetchAll(PDO::FETCH_COLUMN);
    
    echo "<p>Tabelas encontradas:</p>";
    echo "<ul>";
    foreach ($tabelas as $tabela) {
        echo "<li>$tabela</li>";
    }
    echo "</ul>";
    
    echo "<h2>2. Verificando estrutura da tabela 'solicitacoes'</h2>";
    
    if (in_array('solicitacoes', $tabelas)) {
        $stmt = $pdo->query("DESCRIBE solicitacoes");
        $colunas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><th>Campo</th><th>Tipo</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>";
        foreach ($colunas as $coluna) {
            echo "<tr>";
            echo "<td>{$coluna['Field']}</td>";
            echo "<td>{$coluna['Type']}</td>";
            echo "<td>{$coluna['Null']}</td>";
            echo "<td>{$coluna['Key']}</td>";
            echo "<td>{$coluna['Default']}</td>";
            echo "<td>{$coluna['Extra']}</td>";
            echo "</tr>";
        }
        echo "</table>";
        
        // Verificar dados
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes");
        $total = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
        echo "<p>Total de registros: $total</p>";
        
        if ($total > 0) {
            $stmt = $pdo->query("SELECT * FROM solicitacoes LIMIT 3");
            $dados = $stmt->fetchAll(PDO::FETCH_ASSOC);
            
            echo "<h3>Primeiros 3 registros:</h3>";
            echo "<pre>" . print_r($dados, true) . "</pre>";
        }
    } else {
        echo "<p style='color: red;'>❌ Tabela 'solicitacoes' não encontrada!</p>";
    }
    
    echo "<h2>3. Verificando tabelas relacionadas</h2>";
    
    $tabelasRelacionadas = ['clientes', 'motoristas', 'veiculos', 'gestores'];
    
    foreach ($tabelasRelacionadas as $tabela) {
        if (in_array($tabela, $tabelas)) {
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM $tabela");
            $total = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
            echo "<p>✅ $tabela: $total registros</p>";
        } else {
            echo "<p style='color: red;'>❌ Tabela '$tabela' não encontrada!</p>";
        }
    }
    
    echo "<h2>4. Testando query da API</h2>";
    
    try {
        $sql = "SELECT 
                    s.id,
                    s.motivo,
                    s.data_solicitacao,
                    s.data_resposta,
                    s.status,
                    s.prioridade,
                    s.observacoes as justificativa,
                    c.nome as cliente,
                    m.nome as motorista_nome,
                    v.modelo as veiculo_modelo,
                    g.nome as gestor_nome
                FROM solicitacoes s
                LEFT JOIN clientes c ON s.cliente_id = c.id
                LEFT JOIN motoristas m ON s.motorista_id = m.id
                LEFT JOIN veiculos v ON s.veiculo_id = v.id
                LEFT JOIN gestores g ON s.gestor_id = g.id
                WHERE s.status IN ('aprovada', 'negada')
                ORDER BY s.data_resposta DESC, s.id DESC
                LIMIT 5";
        
        $stmt = $pdo->prepare($sql);
        $stmt->execute();
        $resultados = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<p style='color: green;'>✅ Query executada com sucesso!</p>";
        echo "<p>Resultados encontrados: " . count($resultados) . "</p>";
        
        if (count($resultados) > 0) {
            echo "<h3>Primeiros resultados:</h3>";
            echo "<pre>" . print_r($resultados, true) . "</pre>";
        }
        
    } catch (Exception $e) {
        echo "<p style='color: red;'>❌ Erro na query: " . $e->getMessage() . "</p>";
    }
    
    echo "<h2>5. Status Final</h2>";
    
    if (in_array('solicitacoes', $tabelas)) {
        echo "<p style='color: green;'>✅ Tabela 'solicitacoes' existe</p>";
        
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes WHERE status IN ('aprovada', 'negada')");
        $total = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
        
        if ($total > 0) {
            echo "<p style='color: green;'>✅ Existem $total solicitações aprovadas/negadas</p>";
        } else {
            echo "<p style='color: orange;'>⚠️ Nenhuma solicitação aprovada/negada encontrada</p>";
            echo "<p>O monitoramento só mostra solicitações processadas (aprovadas ou negadas)</p>";
        }
    } else {
        echo "<p style='color: red;'>❌ Tabela 'solicitacoes' não existe</p>";
    }
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}
?> 
