<?php
header('Content-Type: text/html; charset=utf-8');

try {
    $pdo = new PDO('mysql:host=localhost;dbname=controle_frotas;charset=utf8', 'root', '');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "<h2>🔧 Corrigindo Problemas do Sistema</h2>";
    
    // 1. Verificar estrutura da tabela veiculos
    echo "<h3>1. Verificando estrutura da tabela veículos:</h3>";
    $stmt = $pdo->query('DESCRIBE veiculos');
    $colunas = $stmt->fetchAll();
    
    $colunasExistentes = array_column($colunas, 'Field');
    echo "<p>Colunas existentes: " . implode(', ', $colunasExistentes) . "</p>";
    
    // Adicionar colunas que faltam
    $colunasNecessarias = [
        'ano' => 'INT(4) NULL',
        'cor' => 'VARCHAR(50) NULL',
        'tipo' => 'VARCHAR(50) DEFAULT "Carro"',
        'odometro_atual' => 'INT DEFAULT 0',
        'created_at' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP',
        'updated_at' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'
    ];
    
    foreach ($colunasNecessarias as $coluna => $definicao) {
        if (!in_array($coluna, $colunasExistentes)) {
            try {
                $pdo->exec("ALTER TABLE veiculos ADD COLUMN $coluna $definicao");
                echo "<p style='color: green;'>✅ Coluna '$coluna' adicionada</p>";
            } catch (Exception $e) {
                echo "<p style='color: red;'>❌ Erro ao adicionar coluna '$coluna': " . $e->getMessage() . "</p>";
            }
        } else {
            echo "<p>✅ Coluna '$coluna' já existe</p>";
        }
    }
    
    // 2. Verificar e corrigir tabela motoristas
    echo "<h3>2. Verificando tabela motoristas:</h3>";
    $stmt = $pdo->query('DESCRIBE motoristas');
    $colunasMotoristas = array_column($stmt->fetchAll(), 'Field');
    
    $colunasNecessariasMotoristas = [
        'usuario' => 'VARCHAR(100) UNIQUE',
        'senha' => 'VARCHAR(255)',
        'created_at' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP',
        'updated_at' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'
    ];
    
    foreach ($colunasNecessariasMotoristas as $coluna => $definicao) {
        if (!in_array($coluna, $colunasMotoristas)) {
            try {
                $pdo->exec("ALTER TABLE motoristas ADD COLUMN $coluna $definicao");
                echo "<p style='color: green;'>✅ Coluna '$coluna' adicionada na tabela motoristas</p>";
            } catch (Exception $e) {
                echo "<p style='color: red;'>❌ Erro ao adicionar coluna '$coluna': " . $e->getMessage() . "</p>";
            }
        }
    }
    
    // 3. Criar motoristas de teste se não existirem
    echo "<h3>3. Verificando motoristas cadastrados:</h3>";
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM motoristas");
    $totalMotoristas = $stmt->fetch()['total'];
    
    if ($totalMotoristas == 0) {
        echo "<p>Criando motoristas de teste...</p>";
        
        $motoristasTeste = [
            ['João Silva', '001', 'joao', '123456', '12345678901', '(11) 99999-1111'],
            ['Maria Santos', '002', 'maria', '123456', '12345678902', '(11) 99999-2222'],
            ['Pedro Oliveira', '003', 'pedro', '123456', '12345678903', '(11) 99999-3333']
        ];
        
        foreach ($motoristasTeste as $motorista) {
            try {
                $stmt = $pdo->prepare("
                    INSERT INTO motoristas (nome, matricula, usuario, senha, cpf, telefone, status) 
                    VALUES (?, ?, ?, ?, ?, ?, 'ativo')
                ");
                $stmt->execute($motorista);
                echo "<p style='color: green;'>✅ Motorista criado: {$motorista[0]} - Usuário: {$motorista[2]}</p>";
            } catch (Exception $e) {
                echo "<p style='color: red;'>❌ Erro ao criar motorista {$motorista[0]}: " . $e->getMessage() . "</p>";
            }
        }
    } else {
        echo "<p>✅ Já existem $totalMotoristas motoristas cadastrados</p>";
    }
    
    // 4. Verificar tabela clientes
    echo "<h3>4. Verificando tabela clientes:</h3>";
    try {
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM clientes");
        $totalClientes = $stmt->fetch()['total'];
        echo "<p>✅ Tabela clientes OK - $totalClientes registros</p>";
    } catch (Exception $e) {
        echo "<p style='color: orange;'>⚠️ Problema na tabela clientes: " . $e->getMessage() . "</p>";
        
        // Criar tabela clientes se não existir
        try {
            $pdo->exec("
                CREATE TABLE IF NOT EXISTS clientes (
                    id INT AUTO_INCREMENT PRIMARY KEY,
                    nome VARCHAR(255) NOT NULL,
                    cpf_cnpj VARCHAR(20) UNIQUE,
                    telefone VARCHAR(20),
                    email VARCHAR(255),
                    endereco TEXT,
                    status VARCHAR(20) DEFAULT 'ativo',
                    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
                )
            ");
            echo "<p style='color: green;'>✅ Tabela clientes criada</p>";
        } catch (Exception $e2) {
            echo "<p style='color: red;'>❌ Erro ao criar tabela clientes: " . $e2->getMessage() . "</p>";
        }
    }
    
    // 5. Corrigir status NULL dos veículos
    echo "<h3>5. Corrigindo status NULL dos veículos:</h3>";
    $stmt = $pdo->exec("UPDATE veiculos SET status = 'ativo' WHERE status IS NULL OR status = ''");
    echo "<p style='color: green;'>✅ $stmt veículos com status corrigido</p>";
    
    // 6. Mostrar resumo final
    echo "<h3>6. Resumo Final:</h3>";
    
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM motoristas WHERE status = 'ativo'");
    $totalMotoristas = $stmt->fetch()['total'];
    
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM veiculos WHERE status = 'ativo'");
    $totalVeiculos = $stmt->fetch()['total'];
    
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM clientes");
    $totalClientes = $stmt->fetch()['total'];
    
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
    echo "<h4>📊 Status do Sistema:</h4>";
    echo "<ul>";
    echo "<li>✅ Motoristas ativos: $totalMotoristas</li>";
    echo "<li>✅ Veículos ativos: $totalVeiculos</li>";
    echo "<li>✅ Clientes cadastrados: $totalClientes</li>";
    echo "</ul>";
    echo "</div>";
    
    // 7. Instruções de login
    echo "<h3>7. Credenciais de Login:</h3>";
    echo "<div style='background: #f0f8ff; padding: 15px; border-radius: 5px;'>";
    echo "<h4>🔐 Para fazer login no app:</h4>";
    
    $stmt = $pdo->query("SELECT nome, matricula, usuario, senha FROM motoristas WHERE status = 'ativo' LIMIT 3");
    $motoristas = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse;'>";
    echo "<tr><th>Nome</th><th>Usuário</th><th>Matrícula</th><th>Senha</th></tr>";
    foreach ($motoristas as $motorista) {
        echo "<tr>";
        echo "<td>{$motorista['nome']}</td>";
        echo "<td><strong>{$motorista['usuario']}</strong></td>";
        echo "<td><strong>{$motorista['matricula']}</strong></td>";
        echo "<td><strong>{$motorista['senha']}</strong></td>";
        echo "</tr>";
    }
    echo "</table>";
    echo "<p><small>Use qualquer um dos usuários/matrículas acima com a respectiva senha</small></p>";
    echo "</div>";
    
    echo "<h3>✅ Correções Concluídas!</h3>";
    echo "<p><a href='admin/dashboard.html'>🔗 Ir para Dashboard</a></p>";
    echo "<p><a href='debug-login.php'>🔗 Testar Login</a></p>";
    
} catch (Exception $e) {
    echo "<div style='color: red;'>❌ Erro geral: " . $e->getMessage() . "</div>";
    echo "<p>Linha: " . $e->getLine() . "</p>";
    echo "<p>Arquivo: " . $e->getFile() . "</p>";
}
?> 
