<?php
// debug-utm.php
// Sistema de debug para identificar problemas com UTMs

// Define BASE_PATH se não estiver definido
if (!defined('BASE_PATH')) {
    define('BASE_PATH', dirname(__FILE__));
}

require_once BASE_PATH . '/includes/config.php';
require_once BASE_PATH . '/includes/db.php';
require_once BASE_PATH . '/includes/functions.php';

// Inclui o sistema de tracking UTM
if (file_exists(BASE_PATH . '/includes/utm-tracking.php')) {
    require_once BASE_PATH . '/includes/utm-tracking.php';
}

// Verificar se é admin
session_start();
if (!isset($_SESSION['admin_id'])) {
    die('Acesso negado. Faça login como administrador.');
}

?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Debug UTM - Sistema de Rastreamento</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
    <style>
        .debug-panel {
            background: #1a1a1a;
            color: #00ff00;
            padding: 20px;
            border-radius: 8px;
            font-family: 'Courier New', monospace;
            margin: 20px 0;
            white-space: pre-wrap;
            overflow-x: auto;
        }
        .status-ok { color: #28a745; }
        .status-warning { color: #ffc107; }
        .status-error { color: #dc3545; }
        .test-section {
            border: 1px solid #dee2e6;
            border-radius: 8px;
            padding: 20px;
            margin: 20px 0;
        }
    </style>
</head>
<body>
    <div class="container-fluid">
        <div class="row">
            <div class="col-12">
                <h1 class="mb-4">
                    <i class="fas fa-bug"></i> Debug UTM - Sistema de Rastreamento
                </h1>

                <!-- Status Geral -->
                <div class="test-section">
                    <h2><i class="fas fa-chart-line"></i> Status Geral do Sistema</h2>
                    <div class="debug-panel">
<?php

echo "=== DIAGNÓSTICO SISTEMA UTM ===\n\n";

// 1. Verificar se sessão está funcionando
echo "1. SESSÃO:\n";
if (session_status() === PHP_SESSION_ACTIVE) {
    echo "   ✅ Sessão ativa: " . session_id() . "\n";
} else {
    echo "   ❌ Sessão não iniciada\n";
}

// 2. Verificar arquivos necessários
echo "\n2. ARQUIVOS NECESSÁRIOS:\n";
$requiredFiles = [
    '/includes/utm-tracking.php',
    '/includes/functions.php', 
    '/includes/config.php',
    '/includes/db.php'
];

foreach ($requiredFiles as $file) {
    if (file_exists(BASE_PATH . $file)) {
        echo "   ✅ $file existe\n";
    } else {
        echo "   ❌ $file NÃO ENCONTRADO\n";
    }
}

// 3. Verificar funções UTM
echo "\n3. FUNÇÕES UTM:\n";
$utmFunctions = [
    'saveUtmParamsToSession',
    'getUtmParams',
    'registerConversion',
    'sendUtmsToPixels'
];

foreach ($utmFunctions as $func) {
    if (function_exists($func)) {
        echo "   ✅ Função $func() existe\n";
    } else {
        echo "   ❌ Função $func() NÃO ENCONTRADA\n";
    }
}

// 4. Verificar banco de dados
echo "\n4. BANCO DE DADOS:\n";
try {
    if (isset($db) && is_object($db)) {
        echo "   ✅ Conexão com banco ativa\n";
        
        // Verificar se tabela existe
        $db->query("SHOW TABLES LIKE 'utm_conversions'");
        $tableExists = $db->single();
        
        if ($tableExists) {
            echo "   ✅ Tabela utm_conversions existe\n";
            
            // Contar registros
            $db->query("SELECT COUNT(*) as total FROM utm_conversions");
            $count = $db->single();
            echo "   📊 Total de conversões registradas: " . ($count['total'] ?? 0) . "\n";
        } else {
            echo "   ⚠️  Tabela utm_conversions NÃO EXISTE\n";
            echo "   💡 Execute o SQL fornecido para criar a tabela\n";
        }
        
    } else {
        echo "   ❌ Conexão com banco não disponível\n";
    }
} catch (Exception $e) {
    echo "   ❌ Erro no banco: " . $e->getMessage() . "\n";
}

// 5. UTMs na sessão atual
echo "\n5. UTMs NA SESSÃO ATUAL:\n";
if (function_exists('getUtmParams')) {
    $currentUtms = getUtmParams();
    if (!empty($currentUtms)) {
        echo "   ✅ UTMs encontrados na sessão:\n";
        foreach ($currentUtms as $key => $value) {
            echo "      $key: $value\n";
        }
    } else {
        echo "   ⚠️  Nenhum UTM na sessão atual\n";
        echo "   💡 Teste adicionando ?utm_source=teste&utm_campaign=debug à URL\n";
    }
} else {
    echo "   ❌ Função getUtmParams() não disponível\n";
}

// 6. Parâmetros GET atuais
echo "\n6. PARÂMETROS GET ATUAIS:\n";
if (!empty($_GET)) {
    echo "   📥 Parâmetros recebidos:\n";
    foreach ($_GET as $key => $value) {
        echo "      $key: $value\n";
    }
} else {
    echo "   ℹ️  Nenhum parâmetro GET na URL atual\n";
}

// 7. Cookies e headers
echo "\n7. INFORMAÇÕES ADICIONAIS:\n";
echo "   IP: " . ($_SERVER['REMOTE_ADDR'] ?? 'não disponível') . "\n";
echo "   User Agent: " . substr($_SERVER['HTTP_USER_AGENT'] ?? 'não disponível', 0, 100) . "...\n";
echo "   Referrer: " . ($_SERVER['HTTP_REFERER'] ?? 'não disponível') . "\n";

?>
                    </div>
                </div>

                <!-- Teste de Captura UTM -->
                <div class="test-section">
                    <h2><i class="fas fa-flask"></i> Teste de Captura UTM</h2>
                    <p>Use estes links para testar a captura de UTMs:</p>
                    
                    <?php $currentUrl = $_SERVER['REQUEST_URI']; ?>
                    
                    <div class="row">
                        <div class="col-md-6">
                            <h5>Links de Teste:</h5>
                            <ul class="list-group">
                                <li class="list-group-item">
                                    <a href="<?php echo $currentUrl; ?>?utm_source=google&utm_medium=cpc&utm_campaign=teste_google" class="btn btn-sm btn-primary">
                                        Testar Google Ads
                                    </a>
                                </li>
                                <li class="list-group-item">
                                    <a href="<?php echo $currentUrl; ?>?utm_source=facebook&utm_medium=social&utm_campaign=teste_facebook&fbclid=123456" class="btn btn-sm btn-info">
                                        Testar Facebook
                                    </a>
                                </li>
                                <li class="list-group-item">
                                    <a href="<?php echo $currentUrl; ?>?utm_source=email&utm_medium=newsletter&utm_campaign=promocao_janeiro" class="btn btn-sm btn-success">
                                        Testar Email
                                    </a>
                                </li>
                                <li class="list-group-item">
                                    <a href="<?php echo $currentUrl; ?>?clear_session=1" class="btn btn-sm btn-warning">
                                        Limpar Sessão
                                    </a>
                                </li>
                            </ul>
                        </div>
                        
                        <div class="col-md-6">
                            <h5>Manual:</h5>
                            <form method="GET" class="mb-3">
                                <div class="row g-2">
                                    <div class="col-md-6">
                                        <input type="text" class="form-control" name="utm_source" placeholder="utm_source" value="<?php echo $_GET['utm_source'] ?? ''; ?>">
                                    </div>
                                    <div class="col-md-6">
                                        <input type="text" class="form-control" name="utm_medium" placeholder="utm_medium" value="<?php echo $_GET['utm_medium'] ?? ''; ?>">
                                    </div>
                                    <div class="col-md-6">
                                        <input type="text" class="form-control" name="utm_campaign" placeholder="utm_campaign" value="<?php echo $_GET['utm_campaign'] ?? ''; ?>">
                                    </div>
                                    <div class="col-md-6">
                                        <input type="text" class="form-control" name="gclid" placeholder="gclid" value="<?php echo $_GET['gclid'] ?? ''; ?>">
                                    </div>
                                    <div class="col-12">
                                        <button type="submit" class="btn btn-primary">Testar UTMs Customizados</button>
                                    </div>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>

                <!-- Últimas Conversões -->
                <div class="test-section">
                    <h2><i class="fas fa-database"></i> Últimas Conversões</h2>
                    
                    <?php
                    try {
                        if (isset($db) && $db->tableExists('utm_conversions')) {
                            $db->query("SELECT * FROM utm_conversions ORDER BY created_at DESC LIMIT 10");
                            $conversions = $db->resultSet();
                            
                            if (!empty($conversions)) {
                                echo '<div class="table-responsive">
                                        <table class="table table-striped">
                                            <thead>
                                                <tr>
                                                    <th>ID</th>
                                                    <th>Tipo</th>
                                                    <th>UTM Source</th>
                                                    <th>UTM Medium</th>
                                                    <th>UTM Campaign</th>
                                                    <th>IP</th>
                                                    <th>Data</th>
                                                </tr>
                                            </thead>
                                            <tbody>';
                                
                                foreach ($conversions as $conv) {
                                    echo '<tr>
                                            <td>' . $conv['id'] . '</td>
                                            <td>' . $conv['conversion_type'] . '</td>
                                            <td>' . $conv['utm_source'] . '</td>
                                            <td>' . $conv['utm_medium'] . '</td>
                                            <td>' . $conv['utm_campaign'] . '</td>
                                            <td>' . $conv['ip'] . '</td>
                                            <td>' . $conv['created_at'] . '</td>
                                          </tr>';
                                }
                                
                                echo '</tbody></table></div>';
                            } else {
                                echo '<div class="alert alert-info">Nenhuma conversão registrada ainda.</div>';
                            }
                        } else {
                            echo '<div class="alert alert-warning">Tabela utm_conversions não existe. Execute o SQL fornecido.</div>';
                        }
                    } catch (Exception $e) {
                        echo '<div class="alert alert-danger">Erro ao buscar conversões: ' . $e->getMessage() . '</div>';
                    }
                    ?>
                </div>

                <!-- Ações Corretivas -->
                <div class="test-section">
                    <h2><i class="fas fa-tools"></i> Ações Corretivas</h2>
                    
                    <div class="row">
                        <div class="col-md-4">
                            <div class="card">
                                <div class="card-header">
                                    <h5>Criar Tabela</h5>
                                </div>
                                <div class="card-body">
                                    <p>Se a tabela utm_conversions não existe:</p>
                                    <button class="btn btn-primary" onclick="createTable()">Criar Tabela</button>
                                </div>
                            </div>
                        </div>
                        
                        <div class="col-md-4">
                            <div class="card">
                                <div class="card-header">
                                    <h5>Testar Conversão</h5>
                                </div>
                                <div class="card-body">
                                    <p>Registrar conversão de teste:</p>
                                    <button class="btn btn-success" onclick="testConversion()">Testar</button>
                                </div>
                            </div>
                        </div>
                        
                        <div class="col-md-4">
                            <div class="card">
                                <div class="card-header">
                                    <h5>Limpar Dados</h5>
                                </div>
                                <div class="card-body">
                                    <p>Limpar dados de teste:</p>
                                    <button class="btn btn-warning" onclick="clearTestData()">Limpar</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <!-- JavaScript para ações -->
    <script>
        function createTable() {
            if (confirm('Criar tabela utm_conversions?')) {
                fetch('debug-utm.php?action=create_table', {method: 'POST'})
                .then(response => response.text())
                .then(data => {
                    alert('Resultado: ' + data);
                    location.reload();
                });
            }
        }
        
        function testConversion() {
            fetch('debug-utm.php?action=test_conversion', {method: 'POST'})
            .then(response => response.text())
            .then(data => {
                alert('Conversão teste criada: ' + data);
                location.reload();
            });
        }
        
        function clearTestData() {
            if (confirm('Limpar dados de teste?')) {
                fetch('debug-utm.php?action=clear_test', {method: 'POST'})
                .then(response => response.text())
                .then(data => {
                    alert('Dados limpos: ' + data);
                    location.reload();
                });
            }
        }
    </script>
</body>
</html>

<?php
// Processa ações AJAX
if (isset($_GET['action'])) {
    header('Content-Type: text/plain');
    
    switch ($_GET['action']) {
        case 'create_table':
            try {
                if (function_exists('createUtmTrackingTable')) {
                    createUtmTrackingTable();
                    echo "Tabela criada com sucesso";
                } else {
                    echo "Função createUtmTrackingTable não disponível";
                }
            } catch (Exception $e) {
                echo "Erro: " . $e->getMessage();
            }
            exit;
            
        case 'test_conversion':
            try {
                if (function_exists('registerConversion')) {
                    $result = registerConversion(1, 'test_debug', ['debug' => true]);
                    echo $result ? "Sucesso" : "Falhou";
                } else {
                    echo "Função registerConversion não disponível";
                }
            } catch (Exception $e) {
                echo "Erro: " . $e->getMessage();
            }
            exit;
            
        case 'clear_test':
            try {
                $db->query("DELETE FROM utm_conversions WHERE conversion_type = 'test_debug'");
                $db->execute();
                echo "Dados de teste removidos";
            } catch (Exception $e) {
                echo "Erro: " . $e->getMessage();
            }
            exit;
    }
}

// Limpar sessão se solicitado
if (isset($_GET['clear_session'])) {
    unset($_SESSION['utm_params']);
    header('Location: debug-utm.php');
    exit;
}

// Capturar UTMs se houverem
if (function_exists('saveUtmParamsToSession')) {
    saveUtmParamsToSession();
}
?>