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

echo "<h2>🔧 Corrigindo IDs Zerados no Sistema</h2>";

try {
    $pdo = Database::getConnection();
    
    echo "<h3>1. Verificando registros com ID = 0</h3>";
    
    // Verificar solicitacoes_rotas
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes_rotas WHERE id = 0");
    $result = $stmt->fetch();
    $rotasComIdZero = $result['total'];
    echo "📋 Rotas com ID = 0: $rotasComIdZero<br>";
    
    // Verificar rota_clientes
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM rota_clientes WHERE id = 0 OR solicitacao_rota_id = 0");
    $result = $stmt->fetch();
    $clientesComIdZero = $result['total'];
    echo "📋 Clientes de rota com ID = 0: $clientesComIdZero<br>";
    
    if ($rotasComIdZero > 0 || $clientesComIdZero > 0) {
        echo "<h3>2. Corrigindo IDs zerados</h3>";
        
        // Corrigir solicitacoes_rotas
        if ($rotasComIdZero > 0) {
            echo "🔧 Corrigindo IDs das rotas...<br>";
            
            // Primeiro, deletar registros com ID = 0
            $stmt = $pdo->prepare("DELETE FROM rota_clientes WHERE solicitacao_rota_id = 0");
            $stmt->execute();
            echo "✅ Clientes de rota com solicitacao_rota_id = 0 removidos<br>";
            
            $stmt = $pdo->prepare("DELETE FROM solicitacoes_rotas WHERE id = 0");
            $stmt->execute();
            echo "✅ Rotas com ID = 0 removidas<br>";
        }
        
        // Verificar se há registros válidos
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes_rotas");
        $result = $stmt->fetch();
        $totalRotas = $result['total'];
        echo "📊 Total de rotas válidas: $totalRotas<br>";
        
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM rota_clientes");
        $result = $stmt->fetch();
        $totalClientes = $result['total'];
        echo "📊 Total de clientes de rota válidos: $totalClientes<br>";
        
    } else {
        echo "✅ Nenhum registro com ID = 0 encontrado<br>";
    }
    
    echo "<h3>3. Verificando estrutura das tabelas</h3>";
    
    // Verificar se AUTO_INCREMENT está funcionando
    $stmt = $pdo->query("SHOW TABLE STATUS LIKE 'solicitacoes_rotas'");
    $result = $stmt->fetch();
    echo "📋 solicitacoes_rotas - Auto_increment: {$result['Auto_increment']}<br>";
    
    $stmt = $pdo->query("SHOW TABLE STATUS LIKE 'rota_clientes'");
    $result = $stmt->fetch();
    echo "📋 rota_clientes - Auto_increment: {$result['Auto_increment']}<br>";
    
    echo "<h3>4. Criando nova rota de teste</h3>";
    
    // Inserir uma nova rota de teste
    $sql = "INSERT INTO solicitacoes_rotas (
        motorista_id, veiculo_id, titulo, descricao, data_prevista, 
        hora_inicio_prevista, duracao_estimada, km_estimado, prioridade, status, gestor_id
    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    
    $stmt = $pdo->prepare($sql);
    $result = $stmt->execute([
        4, // motorista_id
        6, // veiculo_id
        'Rota Teste Corrigida',
        'Rota criada para testar IDs',
        '2025-08-28',
        '08:00:00',
        60,
        10,
        'normal',
        'aprovada',
        1 // gestor_id
    ]);
    
    if ($result) {
        $rotaId = $pdo->lastInsertId();
        echo "✅ Nova rota criada com ID: $rotaId<br>";
        
        // Inserir cliente para esta rota
        $sql = "INSERT INTO rota_clientes (
            solicitacao_rota_id, nome_cliente, endereco, motivo_atendimento, 
            ordem_sequencia, tempo_estimado, status_atendimento
        ) VALUES (?, ?, ?, ?, ?, ?, ?)";
        
        $stmt = $pdo->prepare($sql);
        $result = $stmt->execute([
            $rotaId,
            'Cliente Teste Corrigido',
            'Rua Teste, 123 - Centro',
            'Teste de correção',
            1,
            30,
            'pendente'
        ]);
        
        if ($result) {
            $clienteId = $pdo->lastInsertId();
            echo "✅ Cliente criado com ID: $clienteId para rota ID: $rotaId<br>";
        } else {
            echo "❌ Erro ao criar cliente<br>";
        }
    } else {
        echo "❌ Erro ao criar rota<br>";
    }
    
    echo "<h3>5. Verificando IDs após correção</h3>";
    
    $stmt = $pdo->query("SELECT id, titulo FROM solicitacoes_rotas ORDER BY id DESC LIMIT 3");
    $rotas = $stmt->fetchAll();
    
    echo "📋 Últimas 3 rotas:<br>";
    foreach ($rotas as $rota) {
        echo "- ID: {$rota['id']} | Título: {$rota['titulo']}<br>";
    }
    
    $stmt = $pdo->query("SELECT id, solicitacao_rota_id, nome_cliente FROM rota_clientes ORDER BY id DESC LIMIT 3");
    $clientes = $stmt->fetchAll();
    
    echo "📋 Últimos 3 clientes de rota:<br>";
    foreach ($clientes as $cliente) {
        echo "- ID: {$cliente['id']} | Rota ID: {$cliente['solicitacao_rota_id']} | Nome: {$cliente['nome_cliente']}<br>";
    }
    
    echo "<h3>6. Testando API com nova rota</h3>";
    
    if (!empty($rotas)) {
        $rotaId = $rotas[0]['id'];
        $url = "https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-simples-v2.php?acao=detalhes-rota-execucao&id=$rotaId";
        
        echo "🧪 Testando API com rota ID: $rotaId<br>";
        echo "📡 URL: $url<br>";
        
        $context = stream_context_create([
            'http' => [
                'timeout' => 10,
                'ignore_errors' => true
            ]
        ]);
        
        $response = file_get_contents($url, false, $context);
        
        if ($response !== false) {
            $data = json_decode($response, true);
            if ($data && isset($data['sucesso'])) {
                if ($data['sucesso']) {
                    echo "✅ API funcionando! Rota: {$data['dados']['titulo']}<br>";
                } else {
                    echo "❌ API retornou erro: {$data['mensagem']}<br>";
                }
            } else {
                echo "❌ Resposta inválida da API<br>";
                echo "📝 Response: " . htmlspecialchars($response) . "<br>";
            }
        } else {
            echo "❌ Erro ao acessar API<br>";
        }
    }
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "<br>";
}
?>
