<?php
/**
 * Script para verificar estrutura das tabelas
 */

require_once 'config/bootstrap.php';

use ControleFrotas\Config\Database;

try {
    $pdo = Database::getConnection();
    echo "✅ Conexão com banco estabelecida\n";
    
    // Verificar tabelas existentes
    echo "\n📋 Tabelas existentes:\n";
    $stmt = $pdo->query("SHOW TABLES");
    while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
        echo "- {$row[0]}\n";
    }
    
    // Verificar se solicitacoes_viagem existe
    echo "\n🔍 Verificando tabela solicitacoes_viagem:\n";
    $stmt = $pdo->query("SHOW TABLES LIKE 'solicitacoes_viagem'");
    if ($stmt->rowCount() > 0) {
        echo "✅ Tabela solicitacoes_viagem existe\n";
        
        // Verificar estrutura
        echo "\n📋 Estrutura da tabela solicitacoes_viagem:\n";
        $stmt = $pdo->query("DESCRIBE solicitacoes_viagem");
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            echo "- {$row['Field']}: {$row['Type']} ({$row['Null']})\n";
        }
        
        // Verificar dados
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes_viagem");
        $count = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
        echo "\n📊 Total de solicitações: $count\n";
        
    } else {
        echo "❌ Tabela solicitacoes_viagem NÃO existe\n";
    }
    
    // Verificar tabela motoristas
    echo "\n🔍 Verificando tabela motoristas:\n";
    $stmt = $pdo->query("SHOW TABLES LIKE 'motoristas'");
    if ($stmt->rowCount() > 0) {
        echo "✅ Tabela motoristas existe\n";
        
        // Verificar campos importantes
        $stmt = $pdo->query("DESCRIBE motoristas");
        $campos = [];
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $campos[] = $row['Field'];
        }
        
        echo "📋 Campos da tabela motoristas:\n";
        foreach ($campos as $campo) {
            echo "- $campo\n";
        }
        
        // Verificar se tem dados
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM motoristas");
        $count = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
        echo "\n📊 Total de motoristas: $count\n";
        
    } else {
        echo "❌ Tabela motoristas NÃO existe\n";
    }
    
    // Verificar tabela veiculos
    echo "\n🔍 Verificando tabela veiculos:\n";
    $stmt = $pdo->query("SHOW TABLES LIKE 'veiculos'");
    if ($stmt->rowCount() > 0) {
        echo "✅ Tabela veiculos existe\n";
        
        // Verificar dados
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM veiculos");
        $count = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
        echo "📊 Total de veículos: $count\n";
        
        // Mostrar alguns veículos
        $stmt = $pdo->query("SELECT id, modelo, placa FROM veiculos LIMIT 5");
        echo "🚗 Veículos disponíveis:\n";
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            echo "- ID: {$row['id']}, Modelo: {$row['modelo']}, Placa: {$row['placa']}\n";
        }
        
    } else {
        echo "❌ Tabela veiculos NÃO existe\n";
    }
    
    // Verificar foreign keys
    echo "\n🔗 Verificando foreign keys:\n";
    $stmt = $pdo->query("
        SELECT 
            TABLE_NAME,
            COLUMN_NAME,
            CONSTRAINT_NAME,
            REFERENCED_TABLE_NAME,
            REFERENCED_COLUMN_NAME
        FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
        WHERE REFERENCED_TABLE_SCHEMA = DATABASE()
        AND TABLE_NAME = 'solicitacoes_viagem'
    ");
    
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "- {$row['COLUMN_NAME']} -> {$row['REFERENCED_TABLE_NAME']}.{$row['REFERENCED_COLUMN_NAME']}\n";
    }
    
} catch (Exception $e) {
    echo "❌ ERRO: " . $e->getMessage() . "\n";
    echo "📋 Stack trace:\n" . $e->getTraceAsString() . "\n";
}
?> 
