<?php
session_start();
error_reporting(0);
ini_set('display_errors', 0);
date_default_timezone_set('America/Sao_Paulo');

require_once 'config.php';
$pdo = getConexaoAtiva(); // Banco Principal
$pdo_int = getConexaoInterna(); // Banco Local

$pdo->exec("SET NAMES utf8mb4");
$pdo_int->exec("SET NAMES utf8mb4");

if (!isset($_SESSION['user_id'])) { header("Location: login.php"); exit; }

$role = $_SESSION['user_role'] ?? 'reseller';
$my_id = $_SESSION['user_id'];
$nome_usuario = $_SESSION['username'] ?? 'Usuário';

// ====================================================================
// INTELIGÊNCIA ARTIFICIAL: DETECTA SE É XUI ONE OU XTREAM UI
// ====================================================================
$modo_ativo = 'interno';
try {
    $modo_ativo = $pdo_int->query("SELECT modo_ativo FROM configuracoes LIMIT 1")->fetchColumn() ?: 'interno';
} catch (Exception $e) {}

// --- BUSCA DADOS GERAIS (SEMPRE NO BANCO INTERNO) ---
$nome_painel = 'TOP IPTV';
$logo_url = '';
$cor_primaria = '#007bff';

try {
    $config_painel = $pdo_int->query("SELECT * FROM painel_config LIMIT 1")->fetch(PDO::FETCH_ASSOC);
    if ($config_painel) {
        $nome_painel = $config_painel['nome_painel'] ?: $nome_painel;
        $logo_url = $config_painel['logo_url'] ?: $logo_url;
        $cor_primaria = $config_painel['cor_primaria'] ?: $cor_primaria;
    }
    $user_credits = $pdo_int->query("SELECT credits FROM reg_users WHERE id = " . intval($my_id))->fetchColumn() ?: 0;
} catch (Exception $e) { $user_credits = 0; }

// --- BUSCA PLANOS E GATEWAYS (SEMPRE NO BANCO INTERNO) ---
$planos = [];
$config_pag = [];
try {
    $planos = $pdo_int->query("SELECT * FROM planos_creditos ORDER BY valor ASC")->fetchAll(PDO::FETCH_ASSOC);
    $config_pag = $pdo_int->query("SELECT * FROM config_pagamentos LIMIT 1")->fetch(PDO::FETCH_ASSOC);
} catch(Exception $e) {}

$tem_asaas = !empty($config_pag['asaas_token']);
$tem_mp = !empty($config_pag['mp_token']);
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <link rel="stylesheet" href="tema.css">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Comprar Créditos - <?php echo htmlspecialchars($nome_painel); ?></title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        :root { --bg-dark: #121519; --bg-sidebar: #1e2227; --bg-card: #272c33; --text-main: #d1d5da; --text-muted: #8a94a1; --accent: <?php echo $cor_primaria; ?>; --border-color: #3a4149; --success: #28a745; --danger: #dc3545; --warning: #6c757d; --info: #17a2b8; }
        body { margin: 0; font-family: 'Segoe UI', sans-serif; background-color: var(--bg-dark); color: var(--text-main); display: flex; height: 100vh; overflow: hidden; }
        
        /* CSS OBRIGATÓRIO PARA A LOGO E MENU */
        .sidebar { width: 260px; background-color: var(--bg-sidebar); border-right: 1px solid var(--border-color); display: flex; flex-direction: column; z-index: 1001; transition: 0.3s; flex-shrink: 0;}
        .sidebar-header { padding: 25px 20px; text-align: center; font-size: 22px; font-weight: bold; color: white; border-bottom: 1px solid var(--border-color); }
        .sidebar-logo { width: 100%; max-width: 180px; height: auto; max-height: 60px; object-fit: contain; display: block; margin: 0 auto; }
        .user-info { padding: 20px; text-align: center; border-bottom: 1px solid var(--border-color); }
        .user-info .badge { background: rgba(0, 123, 255, 0.2); color: var(--accent); padding: 4px 10px; border-radius: 4px; font-size: 11px; text-transform: uppercase; font-weight: bold; margin-top: 5px; display: inline-block; }
        .credits-badge { display: block; margin-top: 10px; color: var(--success); font-weight: bold; font-size: 13px; }
        .menu-list { list-style: none; padding: 0; margin: 0; overflow-y: auto; flex: 1; }
        .menu-item { padding: 14px 20px; color: var(--text-main); text-decoration: none; display: flex; align-items: center; transition: 0.2s; border-left: 3px solid transparent; font-size: 15px; cursor: pointer; }
        .menu-item i:first-child { margin-right: 12px; width: 20px; text-align: center; color: var(--text-muted); }
        .menu-item:hover, .menu-item.active { background-color: #2c3138; color: white; border-left-color: var(--accent); }
        .menu-item.active i:first-child { color: var(--accent); }
        .submenu { display: none; background: #16191d; list-style: none; padding: 0; margin: 0; }
        .submenu .menu-item { padding-left: 52px; font-size: 14px; border-left: none; }
        .arrow-icon { margin-left: auto; transition: 0.3s; font-size: 12px; }
        .rotate { transform: rotate(180deg); }
        .menu-category { padding: 20px 20px 8px; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: bold; letter-spacing: 1px; }
        .logout-btn { padding: 15px; background-color: #dc3545; color: white; text-align: center; text-decoration: none; font-weight: bold; margin-top: auto; }
        
        .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 1000; }
        .main-content { flex: 1; display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; transition: 0.3s; position: relative; width: 100vw; max-width: 100%; }
        .topbar { display: flex; justify-content: space-between; align-items: center; padding: 15px 30px; background-color: var(--bg-sidebar); border-bottom: 1px solid var(--border-color); }
        .mode-badge { padding: 6px 15px; background: rgba(40, 167, 69, 0.15); color: var(--success); border-radius: 20px; font-size: 12px; font-weight: bold; border: 1px solid var(--success); }
        .content-area { padding: 30px; flex: 1; overflow-y: auto; overflow-x: hidden; padding-bottom: 100px; box-sizing: border-box; width: 100%; }
        .menu-toggle { display: none; background: none; border: none; color: white; font-size: 24px; cursor: pointer; }

        /* GRID DA LOJA */
        .store-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-top: 20px; }
        .plano-card { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 12px; padding: 30px 20px; text-align: center; position: relative; display: flex; flex-direction: column; transition: 0.3s; }
        .plano-card:hover { transform: translateY(-5px); border-color: var(--accent); box-shadow: 0 10px 20px rgba(0,0,0,0.3); }
        .plano-icone { font-size: 40px; color: var(--accent); margin-bottom: 15px; }
        .plano-titulo { font-size: 20px; color: white; font-weight: bold; margin: 0 0 10px 0; }
        .plano-creditos { font-size: 15px; color: var(--text-muted); margin-bottom: 20px; }
        .plano-preco { font-size: 32px; font-weight: bold; color: var(--success); margin-bottom: 25px; }
        .plano-preco span { font-size: 16px; font-weight: normal; color: var(--text-muted); }
        
        .badge-popular { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: #f39c12; color: #121519; padding: 5px 15px; border-radius: 20px; font-size: 11px; font-weight: bold; text-transform: uppercase; box-shadow: 0 4px 10px rgba(243, 156, 18, 0.3); }

        .btn-pagar { width: 100%; padding: 12px; border: none; border-radius: 6px; font-weight: bold; font-size: 14px; cursor: pointer; color: white; display: flex; justify-content: center; align-items: center; gap: 8px; transition: 0.2s; margin-top: auto; margin-bottom: 10px; }
        .btn-asaas { background: #003366; } .btn-asaas:hover { background: #002244; }
        .btn-mp { background: #009ee3; } .btn-mp:hover { background: #0077b3; }

        /* MODAL PIX */
        .modal { display: none; position: fixed; z-index: 2000; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.85); align-items: center; justify-content: center; }
        .modal-content { background: var(--bg-card); width: 90%; max-width: 400px; padding: 30px; border-radius: 15px; border: 1px solid var(--border-color); text-align: center; }
        .qr-image { width: 220px; height: 220px; margin: 20px auto; border-radius: 10px; border: 5px solid white; display: block; }
        
        .copia-cola-box { display: flex; gap: 10px; margin-top: 15px; }
        .copia-cola-box input { flex: 1; background: #121519; border: 1px solid var(--border-color); color: white; padding: 12px; border-radius: 6px; outline: none; }
        .copia-cola-box button { background: var(--info); border: none; color: white; padding: 0 15px; border-radius: 6px; font-weight: bold; cursor: pointer; transition: 0.2s; }
        .copia-cola-box button:hover { filter: brightness(1.1); }

        /* TELA DE SUCESSO DENTRO DO MODAL */
        .success-box { padding: 20px 10px; }
        .success-icon { font-size: 60px; color: var(--success); margin-bottom: 15px; animation: popIn 0.5s ease; }
        .success-title { color: white; font-size: 22px; margin: 10px 0; }
        .success-text { color: var(--text-muted); font-size: 15px; margin-bottom: 20px; }
        .success-btn { background: var(--success); border: none; color: white; padding: 12px 20px; border-radius: 6px; font-weight: bold; cursor: pointer; width: 100%; transition: 0.2s; }
        .success-btn:hover { filter: brightness(1.1); }
        @keyframes popIn { 0% { transform: scale(0.5); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }

        @media (max-width: 768px) { 
            .sidebar { position: fixed; left: -260px; height: 100%; box-shadow: 10px 0 20px rgba(0,0,0,0.5);} 
            .sidebar.active { left: 0; } 
            .menu-toggle { display: block; margin-right: 15px; } 
            .sidebar-overlay.active { display: block; } 
            .topbar { padding: 15px 20px; justify-content: flex-start; } 
            .topbar-right { margin-left: auto; } 
            .content-area { padding: 15px; padding-bottom: 120px; } 
        }
    </style>
</head>
<body>

    <div class="sidebar-overlay" id="overlay" onclick="toggleMenu()"></div>

    <?php include 'sidebar.php'; ?>

    <div class="main-content">
        <header class="topbar">
            <div style="display:flex; align-items:center;">
                <button class="menu-toggle" onclick="toggleMenu()"><i class="fas fa-bars"></i></button>
                <h2 style="margin:0; font-size: 18px; color:white;">Loja de Créditos</h2>
            </div>
            <div class="topbar-right">
                <span class="mode-badge"><i class="fas fa-database"></i> MODO: <?php echo defined('MODO_SISTEMA') ? strtoupper(MODO_SISTEMA) : strtoupper($modo_ativo); ?></span>
            </div>
        </header>

        <div class="content-area">
            
            <?php if(empty($planos)): ?>
                <div style="text-align:center; padding:50px; background:var(--bg-card); border-radius:12px; border:1px solid var(--border-color);">
                    <i class="fas fa-box-open" style="font-size:50px; color:var(--text-muted); margin-bottom:15px;"></i>
                    <h3 style="color:white;">Nenhum pacote disponível</h3>
                    <p style="color:var(--text-muted);">O administrador ainda não cadastrou nenhum plano de créditos.</p>
                </div>
            <?php else: ?>
                <div class="store-grid">
                    <?php foreach($planos as $p): ?>
                        <div class="plano-card">
                            <?php if($p['is_popular']): ?>
                                <div class="badge-popular"><i class="fas fa-fire"></i> Mais Vendido</div>
                            <?php endif; ?>
                            
                            <i class="<?php echo htmlspecialchars($p['icone']); ?> plano-icone"></i>
                            <h3 class="plano-titulo"><?php echo htmlspecialchars($p['titulo']); ?></h3>
                            <div class="plano-creditos"><i class="fas fa-coins"></i> <?php echo $p['qtd_creditos']; ?> Créditos</div>
                            <div class="plano-preco"><span>R$</span> <?php echo number_format($p['valor'], 2, ',', '.'); ?></div>
                            
                            <?php if($tem_asaas): ?>
                                <button class="btn-pagar btn-asaas" onclick="gerarPix(<?php echo $p['id']; ?>, 'asaas')">
                                    <i class="fas fa-qrcode"></i> Pagar via Asaas (PIX)
                                </button>
                            <?php endif; ?>

                            <?php if($tem_mp): ?>
                                <button class="btn-pagar btn-mp" onclick="gerarPix(<?php echo $p['id']; ?>, 'mp')">
                                    <i class="fas fa-handshake"></i> Pagar via Mercado Pago
                                </button>
                            <?php endif; ?>

                            <?php if(!$tem_asaas && !$tem_mp): ?>
                                <p style="color:var(--danger); font-size:12px; font-weight:bold;">Nenhum gateway configurado.</p>
                            <?php endif; ?>
                        </div>
                    <?php endforeach; ?>
                </div>
            <?php endif; ?>

        </div>
        <?php include 'rodape.php'; ?>
    </div>

    <div id="modalPix" class="modal">
        <div class="modal-content">
            <h3 style="color:white; margin-top:0;" id="modalTitulo"><i class="fas fa-qrcode" style="color:var(--success);"></i> Pagamento PIX</h3>
            
            <div id="pixLoading" style="padding: 40px 0;">
                <i class="fas fa-spinner fa-spin fa-3x" style="color: var(--accent);"></i>
                <p style="margin-top: 15px; color: white;">Gerando cobrança no banco...</p>
            </div>

            <div id="pixContainer" style="display: none;">
                <div id="boxQrCode">
                    <p style="color: var(--text-muted); font-size:13px;">Escaneie o QR Code abaixo no app do seu banco:</p>
                    <img id="imgQrCode" src="" class="qr-image" alt="QR Code PIX">
                    
                    <div style="text-align:left; margin-top:20px;">
                        <label style="font-size:12px; font-weight:bold; color:var(--text-muted);">Ou use o PIX Copia e Cola:</label>
                        <div class="copia-cola-box">
                            <input type="text" id="inputPixCopiaCola" readonly>
                            <button type="button" onclick="copiarPix()"><i class="fas fa-copy"></i></button>
                        </div>
                    </div>
                    <p style="color: var(--warning); font-size: 12px; margin-top: 20px;"><i class="fas fa-spinner fa-spin"></i> Aguardando pagamento... não feche esta tela.</p>
                </div>
            </div>

            <button type="button" id="btnFecharModal" onclick="fecharModal()" style="width:100%; background:none; border:none; color:var(--danger); font-weight:bold; margin-top:15px; cursor:pointer;">Cancelar / Fechar</button>
        </div>
    </div>

    <script>
        function toggleMenu() { 
            document.getElementById('sidebar').classList.toggle('active'); 
            document.getElementById('overlay').classList.toggle('active'); 
        }
        
        function toggleSubmenu(id) { 
            var sub = document.getElementById(id); 
            var arrow = document.getElementById('arrow-' + id); 
            if (sub.style.display === "block") { sub.style.display = "none"; if(arrow) arrow.classList.remove('rotate'); } 
            else { sub.style.display = "block"; if(arrow) arrow.classList.add('rotate'); } 
        }
        
        let verificadorPagamento = null; // Variável para controlar o "olheiro"

        function fecharModal() {
            document.getElementById('modalPix').style.display = 'none';
            clearInterval(verificadorPagamento); // Para de perguntar ao banco se fechar a tela
        }

        function gerarPix(planoId, gateway) {
            document.getElementById('modalPix').style.display = 'flex';
            document.getElementById('pixLoading').style.display = 'block';
            document.getElementById('pixContainer').style.display = 'none';
            document.getElementById('modalTitulo').innerHTML = '<i class="fas fa-qrcode" style="color:var(--success);"></i> Pagamento PIX';
            document.getElementById('btnFecharModal').style.display = 'block';
            
            // Restaura o HTML interno caso venha de um sucesso anterior
            document.getElementById('pixContainer').innerHTML = `
                <div id="boxQrCode">
                    <p style="color: var(--text-muted); font-size:13px;">Escaneie o QR Code abaixo no app do seu banco:</p>
                    <img id="imgQrCode" src="" class="qr-image" alt="QR Code PIX">
                    
                    <div style="text-align:left; margin-top:20px;">
                        <label style="font-size:12px; font-weight:bold; color:var(--text-muted);">Ou use o PIX Copia e Cola:</label>
                        <div class="copia-cola-box">
                            <input type="text" id="inputPixCopiaCola" readonly>
                            <button type="button" onclick="copiarPix()"><i class="fas fa-copy"></i></button>
                        </div>
                    </div>
                    <p style="color: var(--warning); font-size: 12px; margin-top: 20px;"><i class="fas fa-spinner fa-spin"></i> Aguardando pagamento... não feche esta tela.</p>
                </div>
            `;

            var formData = new URLSearchParams();
            formData.append('plano_id', planoId);
            formData.append('gateway', gateway);

            fetch('ajax_gerar_pix.php', {
                method: 'POST',
                headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
                body: formData
            })
            .then(response => response.json())
            .then(data => {
                document.getElementById('pixLoading').style.display = 'none';
                
                if (data.sucesso) {
                    var imgData = data.qr_code_base64;
                    if (!imgData.startsWith('data:image')) {
                        imgData = 'data:image/png;base64,' + imgData;
                    }
                    document.getElementById('imgQrCode').src = imgData;
                    document.getElementById('inputPixCopiaCola').value = data.qr_code;
                    document.getElementById('pixContainer').style.display = 'block';

                    // O SEGREDO: Começa a perguntar pro banco de dados se a fatura foi paga
                    iniciarOlheiroDePagamento(data.transacao_id);

                } else {
                    fecharModal();
                    alert("❌ " + data.erro);
                }
            })
            .catch(error => {
                fecharModal();
                alert("❌ Erro fatal de comunicação com o servidor.");
            });
        }

        function iniciarOlheiroDePagamento(transacao_id) {
            clearInterval(verificadorPagamento); // Limpa qualquer verificação velha

            verificadorPagamento = setInterval(function() {
                var formCheck = new URLSearchParams();
                formCheck.append('transacao_id', transacao_id);

                fetch('ajax_verifica_pagamento.php', {
                    method: 'POST',
                    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
                    body: formCheck
                })
                .then(response => response.json())
                .then(res => {
                    if (res.pago) {
                        clearInterval(verificadorPagamento); // Para de perguntar
                        
                        // Troca o QR Code pela tela de sucesso!
                        document.getElementById('modalTitulo').innerHTML = ''; // Esconde título velho
                        document.getElementById('btnFecharModal').style.display = 'none'; // Esconde botão fechar
                        
                        document.getElementById('pixContainer').innerHTML = `
                            <div class="success-box">
                                <i class="fas fa-check-circle success-icon"></i>
                                <h3 class="success-title">Pagamento Aprovado!</h3>
                                <p class="success-text">Você recebeu <strong>+` + res.creditos + ` Créditos</strong> na sua conta e eles já estão prontos para uso.</p>
                                <button type="button" class="success-btn" onclick="window.location.reload()"><i class="fas fa-sync-alt"></i> Atualizar Saldo no Painel</button>
                            </div>
                        `;
                    }
                })
                .catch(err => console.log('Buscando pagamento...'));
            }, 3000); // A cada 3 segundos ele dá uma olhadinha no banco
        }

        function copiarPix() {
            var copyText = document.getElementById("inputPixCopiaCola");
            copyText.select();
            copyText.setSelectionRange(0, 99999);
            document.execCommand("copy");
            alert("✅ PIX copiado com sucesso! Abra o app do banco para pagar.");
        }
    </script>
    <script src="tema.js"></script>
</body>
</html>