<?php
// admin/pixel-settings.php

$pageTitle = 'Configurações do Pixel IntegraOn';
$pageHeader = 'Configurações do Pixel IntegraOn';
$currentPage = 'pixel-settings';

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

require_once '../includes/config.php';
require_once '../includes/db.php';
require_once '../includes/functions.php';
require_once '../includes/auth.php';
require_once '../includes/integraon-pixel.php';

// Requer autenticação
if (!$auth->isLoggedIn()) {
    redirect('admin/login.php');
    exit;
}

$errors = [];
$success = false;

// Processamento do formulário
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $accessToken = isset($_POST['access_token']) ? trim($_POST['access_token']) : '';
    $password = isset($_POST['password']) ? trim($_POST['password']) : '';
    
    // Validação
    if (empty($accessToken)) {
        $errors[] = 'O Access Token é obrigatório.';
    }
    
    if (empty($password)) {
        $errors[] = 'A Senha é obrigatória.';
    }
    
    // Se não houver erros, salva as configurações
    if (empty($errors)) {
        try {
            if ($integraOnPixel->saveSettings($accessToken, $password)) {
                setAlert('Configurações do pixel salvas com sucesso!', ALERT_SUCCESS);
                $success = true;
            } else {
                $errors[] = 'Erro ao salvar as configurações do pixel.';
            }
        } catch (Exception $e) {
            $errors[] = 'Erro ao salvar: ' . $e->getMessage();
        }
    }
}

// Carrega configurações atuais
$currentSettings = $integraOnPixel->getSettings();

// Busca estatísticas de eventos
try {
    $db->query("SELECT 
        COUNT(*) as total_events,
        COUNT(CASE WHEN api_response IS NOT NULL AND api_response NOT LIKE '%error%' THEN 1 END) as successful_events,
        COUNT(CASE WHEN api_response IS NULL OR api_response LIKE '%error%' THEN 1 END) as failed_events,
        COUNT(CASE WHEN created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR) THEN 1 END) as events_24h,
        COUNT(CASE WHEN created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY) THEN 1 END) as events_7d
        FROM pixel_events");
    $stats = $db->single();
    
    // Eventos recentes
    $db->query("SELECT url, ip_address, created_at, 
               CASE WHEN api_response IS NOT NULL AND api_response NOT LIKE '%error%' THEN 'success' ELSE 'error' END as status
               FROM pixel_events 
               ORDER BY created_at DESC 
               LIMIT 10");
    $recentEvents = $db->resultSet();
    
} catch (Exception $e) {
    $stats = [
        'total_events' => 0,
        'successful_events' => 0,
        'failed_events' => 0,
        'events_24h' => 0,
        'events_7d' => 0
    ];
    $recentEvents = [];
}

require_once 'inc/header.php';
?>

<div class="container-fluid px-4">
    <div class="page-header mb-4">
        <div class="row align-items-center">
            <div class="col-md-6">
                <h1 class="page-title"><?php echo $pageTitle; ?></h1>
                <p class="text-muted">Configure a integração com a API do IntegraOn para rastreamento de pixels.</p>
            </div>
            <div class="col-md-6 text-md-end">
                <span class="badge <?php echo $integraOnPixel->isConfigured() ? 'bg-success' : 'bg-warning'; ?> fs-6">
                    <?php echo $integraOnPixel->isConfigured() ? 'Configurado' : 'Não Configurado'; ?>
                </span>
            </div>
        </div>
    </div>

    <!-- Estatísticas -->
    <div class="row mb-4">
        <div class="col-md-3">
            <div class="card border-0 shadow-sm">
                <div class="card-body text-center">
                    <h3 class="text-primary mb-1"><?php echo number_format($stats['total_events']); ?></h3>
                    <p class="text-muted mb-0">Total de Eventos</p>
                </div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="card border-0 shadow-sm">
                <div class="card-body text-center">
                    <h3 class="text-success mb-1"><?php echo number_format($stats['successful_events']); ?></h3>
                    <p class="text-muted mb-0">Eventos Enviados</p>
                </div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="card border-0 shadow-sm">
                <div class="card-body text-center">
                    <h3 class="text-danger mb-1"><?php echo number_format($stats['failed_events']); ?></h3>
                    <p class="text-muted mb-0">Eventos com Erro</p>
                </div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="card border-0 shadow-sm">
                <div class="card-body text-center">
                    <h3 class="text-info mb-1"><?php echo number_format($stats['events_24h']); ?></h3>
                    <p class="text-muted mb-0">Últimas 24h</p>
                </div>
            </div>
        </div>
    </div>

    <div class="row">
        <!-- Formulário de Configuração -->
        <div class="col-md-6">
            <div class="card border-0 shadow-sm">
                <div class="card-header bg-white">
                    <h5 class="card-title mb-0">
                        <i class="fas fa-cog me-2"></i>Configurações da API
                    </h5>
                </div>
                <div class="card-body">
                    <?php if (!empty($errors)): ?>
                    <div class="alert alert-danger">
                        <h6 class="mb-2"><i class="fas fa-exclamation-circle me-2"></i>Erros encontrados:</h6>
                        <ul class="mb-0">
                            <?php foreach ($errors as $error): ?>
                            <li><?php echo htmlspecialchars($error); ?></li>
                            <?php endforeach; ?>
                        </ul>
                    </div>
                    <?php endif; ?>
                    
                    <?php if ($success): ?>
                    <div class="alert alert-success">
                        <i class="fas fa-check-circle me-2"></i>Configurações salvas com sucesso!
                    </div>
                    <?php endif; ?>

                    <form method="post" action="">
                        <div class="mb-3">
                            <label for="access_token" class="form-label">Access Token da API <span class="text-danger">*</span></label>
                            <input type="text" class="form-control" id="access_token" name="access_token" 
                                   value="<?php echo htmlspecialchars($currentSettings['access_token']); ?>" 
                                   placeholder="Digite o Access Token fornecido pelo IntegraOn" required>
                            <div class="form-text">Token de acesso fornecido pela plataforma IntegraOn.</div>
                        </div>
                        
                        <div class="mb-4">
                            <label for="password" class="form-label">Senha da API <span class="text-danger">*</span></label>
                            <input type="password" class="form-control" id="password" name="password" 
                                   value="<?php echo htmlspecialchars($currentSettings['password']); ?>" 
                                   placeholder="Digite a senha da API" required>
                            <div class="form-text">Senha fornecida pela plataforma IntegraOn.</div>
                        </div>
                        
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-save me-2"></i>Salvar Configurações
                        </button>
                    </form>
                </div>
            </div>

            <!-- Informações de Implementação -->
            <div class="card border-0 shadow-sm mt-4">
                <div class="card-header bg-white">
                    <h5 class="card-title mb-0">
                        <i class="fas fa-info-circle me-2"></i>Como Funciona
                    </h5>
                </div>
                <div class="card-body">
                    <div class="alert alert-info">
                        <h6 class="mb-2">Funcionamento do Pixel:</h6>
                        <ul class="mb-0">
                            <li>O pixel é ativado automaticamente quando uma URL contém o parâmetro <code>utm_campaign</code></li>
                            <li>Após 2 segundos na página, os dados são enviados para a API do IntegraOn</li>
                            <li>Todos os eventos são registrados para análise posterior</li>
                            <li>O sistema funciona em todas as páginas do site automaticamente</li>
                        </ul>
                    </div>
                    
                    <h6 class="mt-3">Exemplo de URL que ativa o pixel:</h6>
                    <code class="d-block p-2 bg-light rounded">
                        <?php echo SITE_URL; ?>/pages/minha-landing?utm_campaign=exemplo&utm_source=facebook
                    </code>
                </div>
            </div>
        </div>

        <!-- Eventos Recentes -->
        <div class="col-md-6">
            <div class="card border-0 shadow-sm">
                <div class="card-header bg-white">
                    <h5 class="card-title mb-0">
                        <i class="fas fa-history me-2"></i>Eventos Recentes
                    </h5>
                </div>
                <div class="card-body">
                    <?php if (empty($recentEvents)): ?>
                    <div class="text-center py-4">
                        <i class="fas fa-inbox fa-3x text-muted mb-3"></i>
                        <p class="text-muted">Nenhum evento registrado ainda.</p>
                        <small class="text-muted">Os eventos aparecerão aqui quando alguém acessar uma página com parâmetros UTM.</small>
                    </div>
                    <?php else: ?>
                    <div class="table-responsive">
                        <table class="table table-sm">
                            <thead>
                                <tr>
                                    <th>Data/Hora</th>
                                    <th>URL</th>
                                    <th>IP</th>
                                    <th>Status</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($recentEvents as $event): ?>
                                <tr>
                                    <td>
                                        <small><?php echo formatDate($event['created_at'], 'd/m/Y H:i:s'); ?></small>
                                    </td>
                                    <td>
                                        <small title="<?php echo htmlspecialchars($event['url']); ?>">
                                            <?php echo htmlspecialchars(substr($event['url'], 0, 30)) . (strlen($event['url']) > 30 ? '...' : ''); ?>
                                        </small>
                                    </td>
                                    <td>
                                        <small><?php echo htmlspecialchars($event['ip_address']); ?></small>
                                    </td>
                                    <td>
                                        <span class="badge <?php echo $event['status'] === 'success' ? 'bg-success' : 'bg-danger'; ?>">
                                            <?php echo $event['status'] === 'success' ? 'Sucesso' : 'Erro'; ?>
                                        </span>
                                    </td>
                                </tr>
                                <?php endforeach; ?>
                            </tbody>
                        </table>
                    </div>
                    <?php endif; ?>
                </div>
            </div>

            <!-- Teste do Pixel -->
            <div class="card border-0 shadow-sm mt-4">
                <div class="card-header bg-white">
                    <h5 class="card-title mb-0">
                        <i class="fas fa-flask me-2"></i>Teste do Pixel
                    </h5>
                </div>
                <div class="card-body">
                    <p class="text-muted">Use este link para testar se o pixel está funcionando corretamente:</p>
                    <div class="input-group">
                        <input type="text" class="form-control" 
                               value="<?php echo SITE_URL; ?>?utm_campaign=teste&utm_source=admin" 
                               readonly id="testUrl">
                        <button class="btn btn-outline-secondary" type="button" onclick="copyTestUrl()">
                            <i class="fas fa-copy"></i>
                        </button>
                        <a href="<?php echo SITE_URL; ?>?utm_campaign=teste&utm_source=admin" 
                           class="btn btn-primary" target="_blank">
                            <i class="fas fa-external-link-alt me-1"></i>Testar
                        </a>
                    </div>
                    <small class="text-muted">Abra o link em uma nova aba e verifique se um novo evento aparece na lista acima.</small>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
function copyTestUrl() {
    const testUrl = document.getElementById('testUrl');
    testUrl.select();
    testUrl.setSelectionRange(0, 99999);
    navigator.clipboard.writeText(testUrl.value);
    
    // Feedback visual
    const button = event.target.closest('button');
    const originalHtml = button.innerHTML;
    button.innerHTML = '<i class="fas fa-check"></i>';
    button.classList.add('btn-success');
    button.classList.remove('btn-outline-secondary');
    
    setTimeout(() => {
        button.innerHTML = originalHtml;
        button.classList.remove('btn-success');
        button.classList.add('btn-outline-secondary');
    }, 2000);
}
</script>

<?php require_once 'inc/footer.php'; ?>