<?php
/**
 * Script para corrigir IDs das rotas e clientes
 */

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

echo "<h1>🔧 Corrigir IDs das Rotas e Clientes</h1>";

try {
    // Conectar ao banco
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "<p>✅ Conectado ao banco de dados</p>";
    
    // 1. Verificar estrutura da tabela solicitacoes_rotas
    echo "<h2>🔍 Verificar Estrutura da Tabela solicitacoes_rotas:</h2>";
    $sqlEstrutura = "DESCRIBE solicitacoes_rotas";
    $stmtEstrutura = $pdo->query($sqlEstrutura);
    $estrutura = $stmtEstrutura->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr><th>Campo</th><th>Tipo</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>";
    foreach ($estrutura as $campo) {
        echo "<tr>";
        echo "<td>{$campo['Field']}</td>";
        echo "<td>{$campo['Type']}</td>";
        echo "<td>{$campo['Null']}</td>";
        echo "<td>{$campo['Key']}</td>";
        echo "<td>{$campo['Default']}</td>";
        echo "<td>{$campo['Extra']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 2. Verificar estrutura da tabela rota_clientes
    echo "<h2>🔍 Verificar Estrutura da Tabela rota_clientes:</h2>";
    $sqlEstruturaClientes = "DESCRIBE rota_clientes";
    $stmtEstruturaClientes = $pdo->query($sqlEstruturaClientes);
    $estruturaClientes = $stmtEstruturaClientes->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr><th>Campo</th><th>Tipo</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>";
    foreach ($estruturaClientes as $campo) {
        echo "<tr>";
        echo "<td>{$campo['Field']}</td>";
        echo "<td>{$campo['Type']}</td>";
        echo "<td>{$campo['Null']}</td>";
        echo "<td>{$campo['Key']}</td>";
        echo "<td>{$campo['Default']}</td>";
        echo "<td>{$campo['Extra']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 3. Verificar dados atuais
    echo "<h2>📊 Dados Atuais:</h2>";
    
    // Verificar solicitacoes_rotas
    $sqlRotas = "SELECT * FROM solicitacoes_rotas";
    $stmtRotas = $pdo->query($sqlRotas);
    $rotas = $stmtRotas->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<h3>🗺️ Solicitações de Rota:</h3>";
    if (count($rotas) > 0) {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>ID</th><th>Título</th><th>Status</th><th>Gestor ID</th><th>Data Criação</th></tr>";
        foreach ($rotas as $rota) {
            echo "<tr>";
            echo "<td>{$rota['id']}</td>";
            echo "<td>{$rota['titulo']}</td>";
            echo "<td>{$rota['status']}</td>";
            echo "<td>{$rota['gestor_id']}</td>";
            echo "<td>{$rota['created_at']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Nenhuma rota encontrada</p>";
    }
    
    // Verificar rota_clientes
    $sqlClientes = "SELECT * FROM rota_clientes";
    $stmtClientes = $pdo->query($sqlClientes);
    $clientes = $stmtClientes->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<h3>👥 Clientes de Rota:</h3>";
    if (count($clientes) > 0) {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>ID</th><th>Rota ID</th><th>Nome</th><th>Endereço</th><th>Ordem</th></tr>";
        foreach ($clientes as $cliente) {
            echo "<tr>";
            echo "<td>{$cliente['id']}</td>";
            echo "<td>{$cliente['solicitacao_rota_id']}</td>";
            echo "<td>{$cliente['nome_cliente']}</td>";
            echo "<td>{$cliente['endereco']}</td>";
            echo "<td>{$cliente['ordem_sequencia']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Nenhum cliente encontrado</p>";
    }
    
    // 4. Corrigir IDs se necessário
    echo "<h2>🔧 Corrigindo IDs:</h2>";
    
    // Verificar se há rota com ID 0
    $sqlRotaZero = "SELECT * FROM solicitacoes_rotas WHERE id = 0";
    $stmtRotaZero = $pdo->query($sqlRotaZero);
    $rotaZero = $stmtRotaZero->fetch(PDO::FETCH_ASSOC);
    
    if ($rotaZero) {
        echo "<p>⚠️ Encontrada rota com ID 0 - corrigindo...</p>";
        
        // Atualizar para ID 1
        $sqlUpdateRota = "UPDATE solicitacoes_rotas SET id = 1 WHERE id = 0";
        $pdo->exec($sqlUpdateRota);
        echo "<p>✅ Rota atualizada de ID 0 para ID 1</p>";
        
        // Atualizar clientes para referenciar a rota correta
        $sqlUpdateClientes = "UPDATE rota_clientes SET solicitacao_rota_id = 1 WHERE solicitacao_rota_id = 0";
        $pdo->exec($sqlUpdateClientes);
        echo "<p>✅ Clientes atualizados para referenciar rota ID 1</p>";
    }
    
    // Verificar se há clientes com ID 0
    $sqlClienteZero = "SELECT * FROM rota_clientes WHERE id = 0";
    $stmtClienteZero = $pdo->query($sqlClienteZero);
    $clienteZero = $stmtClienteZero->fetch(PDO::FETCH_ASSOC);
    
    if ($clienteZero) {
        echo "<p>⚠️ Encontrado cliente com ID 0 - corrigindo...</p>";
        
        // Atualizar para ID 1
        $sqlUpdateCliente = "UPDATE rota_clientes SET id = 1 WHERE id = 0";
        $pdo->exec($sqlUpdateCliente);
        echo "<p>✅ Cliente atualizado de ID 0 para ID 1</p>";
    }
    
    // 5. Verificar se as tabelas têm AUTO_INCREMENT configurado corretamente
    echo "<h2>🔧 Verificar AUTO_INCREMENT:</h2>";
    
    $sqlAutoIncrement = "SHOW TABLE STATUS LIKE 'solicitacoes_rotas'";
    $stmtAutoIncrement = $pdo->query($sqlAutoIncrement);
    $statusRotas = $stmtAutoIncrement->fetch(PDO::FETCH_ASSOC);
    
    echo "<p>📊 solicitacoes_rotas - Auto_increment: {$statusRotas['Auto_increment']}</p>";
    
    $sqlAutoIncrementClientes = "SHOW TABLE STATUS LIKE 'rota_clientes'";
    $stmtAutoIncrementClientes = $pdo->query($sqlAutoIncrementClientes);
    $statusClientes = $stmtAutoIncrementClientes->fetch(PDO::FETCH_ASSOC);
    
    echo "<p>📊 rota_clientes - Auto_increment: {$statusClientes['Auto_increment']}</p>";
    
    // Corrigir AUTO_INCREMENT se necessário
    if ($statusRotas['Auto_increment'] <= 1) {
        $sqlFixAutoIncrement = "ALTER TABLE solicitacoes_rotas AUTO_INCREMENT = 2";
        $pdo->exec($sqlFixAutoIncrement);
        echo "<p>✅ AUTO_INCREMENT de solicitacoes_rotas corrigido para 2</p>";
    }
    
    if ($statusClientes['Auto_increment'] <= 1) {
        $sqlFixAutoIncrementClientes = "ALTER TABLE rota_clientes AUTO_INCREMENT = 2";
        $pdo->exec($sqlFixAutoIncrementClientes);
        echo "<p>✅ AUTO_INCREMENT de rota_clientes corrigido para 2</p>";
    }
    
    echo "<p>🔄 <a href='javascript:location.reload()'>Clique aqui para recarregar e verificar</a></p>";
    
} catch (Exception $e) {
    echo "<p>❌ Erro: " . $e->getMessage() . "</p>";
}
?>
