<?php
session_start();
require_once 'config.php';

$pdo = getConexaoAtiva(); // Banco Principal
$pdo_int = getConexaoInterna(); // Banco Local (Onde ficam as integrações)

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

// ====================================================================
// 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) {}

// --- INÍCIO: BUSCA DE PERSONALIZAÇÃO DINÂMICA (NO BANCO INTERNO) ---
$nome_painel = 'TOP IPTV';
$logo_url = '';
$cor_primaria = '#007bff';

try {
    $tabela_existe = $pdo_int->query("SHOW TABLES LIKE 'painel_config'")->rowCount() > 0;
    if ($tabela_existe) {
        $config_p = $pdo_int->query("SELECT * FROM painel_config LIMIT 1")->fetch(PDO::FETCH_ASSOC);
        if ($config_p) {
            $nome_painel = !empty($config_p['nome_painel']) ? $config_p['nome_painel'] : $nome_painel;
            $logo_url = !empty($config_p['logo_url']) ? $config_p['logo_url'] : $logo_url;
            $cor_primaria = !empty($config_p['cor_primaria']) ? $config_p['cor_primaria'] : $cor_primaria;
        }
    }
} catch (Exception $e) {}

if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] !== 'admin') {
    die("Acesso negado. Apenas administradores podem acessar as integrações.");
}

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

try {
    $user_credits = $pdo_int->query("SELECT credits FROM reg_users WHERE id = " . intval($user_id_logado))->fetchColumn() ?: 0;
} catch (Exception $e) { $user_credits = 0; }

// =========================================================================
// PREPARAÇÃO DO BANCO DE DADOS (NO BANCO INTERNO)
// =========================================================================
try {
    $check_api = $pdo_int->query("SHOW COLUMNS FROM `painel_config` LIKE 'api_binstream_url'");
    if (!$check_api->fetch()) {
        $pdo_int->exec("ALTER TABLE `painel_config` 
            ADD COLUMN `api_binstream_url` VARCHAR(255) DEFAULT '',
            ADD COLUMN `api_binstream_key` VARCHAR(255) DEFAULT '',
            ADD COLUMN `api_p2p_url` VARCHAR(255) DEFAULT '',
            ADD COLUMN `api_p2p_key` VARCHAR(255) DEFAULT ''");
    }
    
    // TABELA PARA SALVAR OS PACOTES (BOUQUETS) DAS APIs EXTERNAS
    $pdo_int->exec("CREATE TABLE IF NOT EXISTS `api_bouquets` (
        `id` int(11) AUTO_INCREMENT PRIMARY KEY,
        `servidor` varchar(50) NOT NULL,
        `bouquet_id` int(11) NOT NULL,
        `bouquet_name` varchar(255) NOT NULL
    )");
} catch (PDOException $e) {
    die("Erro no banco interno: " . $e->getMessage());
}

$mensagem = "";

// AÇÃO 1: SALVAR AS APIS
if (isset($_POST['action_save_apis'])) {
    $bin_url = trim($_POST['api_binstream_url'] ?? '');
    $bin_key = trim($_POST['api_binstream_key'] ?? '');
    $p2p_url = trim($_POST['api_p2p_url'] ?? '');
    $p2p_key = trim($_POST['api_p2p_key'] ?? '');

    try {
        $pdo_int->prepare("UPDATE painel_config SET api_binstream_url = ?, api_binstream_key = ?, api_p2p_url = ?, api_p2p_key = ?")->execute([$bin_url, $bin_key, $p2p_url, $p2p_key]);
        $mensagem = "<div class='alert success'><i class='fas fa-check-circle'></i> Integrações de API salvas com sucesso!</div>";
    } catch(Exception $e){
        $mensagem = "<div class='alert danger'><i class='fas fa-times-circle'></i> Erro ao salvar: " . $e->getMessage() . "</div>";
    }
}

// AÇÃO 2: ADICIONAR BOUQUET BINSTREAM MANUALMENTE
if (isset($_POST['action_add_bouquet'])) {
    $servidor = $_POST['servidor_nome'];
    $b_id = intval($_POST['bouquet_id']);
    $b_nome = trim($_POST['bouquet_name']);
    
    if ($b_id > 0 && !empty($b_nome)) {
        try {
            $pdo_int->prepare("INSERT INTO api_bouquets (servidor, bouquet_id, bouquet_name) VALUES (?, ?, ?)")->execute([$servidor, $b_id, $b_nome]);
            $mensagem = "<div class='alert success'><i class='fas fa-check-circle'></i> Pacote $b_nome adicionado com sucesso!</div>";
        } catch(Exception $e) {
            $mensagem = "<div class='alert danger'><i class='fas fa-times-circle'></i> Erro ao adicionar pacote.</div>";
        }
    }
}

// AÇÃO 3: EXCLUIR BOUQUET
if (isset($_GET['del_bq'])) {
    $pdo_int->prepare("DELETE FROM api_bouquets WHERE id = ?")->execute([intval($_GET['del_bq'])]);
    header("Location: integracoes_api.php"); exit;
}

// LER OS DADOS SALVOS PARA EXIBIR NA TELA
$api_binstream_url = ''; $api_binstream_key = ''; $api_p2p_url = ''; $api_p2p_key = '';
try {
    $conf_painel = $pdo_int->query("SELECT * FROM painel_config LIMIT 1")->fetch(PDO::FETCH_ASSOC);
    if ($conf_painel) {
        $api_binstream_url = $conf_painel['api_binstream_url'] ?? '';
        $api_binstream_key = $conf_painel['api_binstream_key'] ?? '';
        $api_p2p_url = $conf_painel['api_p2p_url'] ?? '';
        $api_p2p_key = $conf_painel['api_p2p_key'] ?? '';
    }
} catch (Exception $e) {}

// BUSCAR BOUQUETS SALVOS
$bouquets_binstream = $pdo_int->query("SELECT * FROM api_bouquets WHERE servidor = 'binstream' ORDER BY bouquet_name ASC")->fetchAll(PDO::FETCH_ASSOC);

?>

<!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">
    <title>Integrações API - <?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;
            --purple: #8b5cf6; --orange: #f39c12;
        }
        body { margin: 0; font-family: 'Segoe UI', sans-serif; background-color: var(--bg-dark); color: var(--text-main); display: flex; height: 100vh; overflow: hidden; }
        
        /* SIDEBAR (USANDO O PADRÃO PARA CARREGAR O SIDEBAR.PHP) */
        .sidebar { width: 260px; background-color: var(--bg-sidebar); display: flex; flex-direction: column; transition: 0.3s; border-right: 1px solid var(--border-color); z-index: 1001; 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 { max-width: 180px; max-height: 55px; object-fit: contain; }
        .user-info { padding: 20px; text-align: center; border-bottom: 1px solid var(--border-color); }
        .user-info .badge { background: rgba(255, 255, 255, 0.05); 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-category { padding: 20px 20px 8px; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: bold; letter-spacing: 1px; }
        .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: 14px; 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); }
        
        .submenu { display: none; background: #16191d; list-style: none; padding: 0; margin: 0; }
        .submenu .menu-item { padding-left: 52px; font-size: 13px; border-left: none; }
        .arrow-icon { margin-left: auto; transition: 0.3s; font-size: 12px; }
        .rotate { transform: rotate(180deg); }

        .logout-btn { padding: 15px; background-color: #dc3545; color: white; text-align: center; text-decoration: none; font-weight: bold; margin-top: auto; }

        .topbar { display: flex; align-items: center; justify-content: space-between; background-color: var(--bg-sidebar); padding: 15px 30px; border-bottom: 1px solid var(--border-color); }
        .menu-toggle { display: none; background: none; border: none; color: white; font-size: 22px; cursor: pointer; padding-right: 15px;}
        .mode-badge { padding: 6px 15px; background: rgba(0, 123, 255, 0.15); color: var(--accent); border-radius: 20px; font-size: 12px; font-weight: bold; border: 1px solid var(--accent); white-space: nowrap; display: inline-block; }
        
        .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1000; }

        .main-content { flex: 1; display: flex; flex-direction: column; overflow-y: auto; }
        .content-area { padding: 30px; }
        
        .container-box { max-width: 900px; margin: 0 auto; }
        .page-title { color: white; font-size: 24px; margin-top: 0; margin-bottom: 10px; display: flex; align-items: center; gap: 12px; }
        .page-subtitle { color: var(--text-muted); font-size: 14px; margin-bottom: 30px; line-height: 1.5; }
        
        .api-card { background: var(--bg-card); padding: 30px; border-radius: 12px; border: 1px solid var(--border-color); margin-bottom: 25px; box-shadow: 0 4px 20px rgba(0,0,0,0.15); position: relative; overflow: hidden; }
        .api-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; }
        .api-card.binstream::before { background: var(--purple); }
        .api-card.p2p::before { background: var(--orange); }

        .api-header { display: flex; align-items: center; gap: 15px; margin-bottom: 25px; border-bottom: 1px solid var(--border-color); padding-bottom: 15px; }
        .api-icon { width: 45px; height: 45px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 20px; color: white; }
        .binstream .api-icon { background: rgba(139, 92, 246, 0.2); color: var(--purple); }
        .p2p .api-icon { background: rgba(243, 156, 18, 0.2); color: var(--orange); }
        
        .api-header h3 { margin: 0; color: white; font-size: 18px; }
        .api-header p { margin: 5px 0 0 0; color: var(--text-muted); font-size: 12px; }

        .form-group { margin-bottom: 20px; }
        label { display: block; margin-bottom: 8px; color: #b9c1cb; font-size: 13px; font-weight: bold; }
        .input-group { position: relative; display: flex; align-items: center; }
        .input-group i { position: absolute; left: 15px; color: var(--text-muted); }
        input { width: 100%; padding: 14px 14px 14px 45px; border: 1px solid var(--border-color); background: #121519; color: white; border-radius: 8px; box-sizing: border-box; font-size: 14px; transition: 0.2s; }
        input:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1); }
        
        .btn-salvar { background: var(--success); color: white; padding: 16px; border: none; border-radius: 8px; cursor: pointer; font-weight: bold; width: 100%; font-size: 15px; display: flex; align-items: center; justify-content: center; gap: 10px; transition: 0.2s; margin-bottom: 30px;}
        .btn-salvar:hover { filter: brightness(1.1); box-shadow: 0 5px 15px rgba(40, 167, 69, 0.2); transform: translateY(-2px); }
        
        .alert { padding: 16px; margin-bottom: 25px; border-radius: 8px; font-weight: bold; display: flex; align-items: center; gap: 10px; font-size: 14px; }
        .alert.success { background: rgba(40, 167, 69, 0.15); border: 1px solid var(--success); color: var(--success); }
        .alert.danger { background: rgba(220, 53, 69, 0.15); border: 1px solid var(--danger); color: var(--danger); }

        /* BOUQUETS SECTION */
        .bouquet-area { background: rgba(0,0,0,0.2); border-radius: 8px; border: 1px solid var(--border-color); padding: 20px; margin-top: 15px; }
        .bouquet-area h4 { margin-top: 0; color: white; border-bottom: 1px dashed var(--border-color); padding-bottom: 10px; margin-bottom: 15px; font-size: 15px; }
        .bq-form { display: flex; gap: 10px; margin-bottom: 20px; align-items: flex-end; flex-wrap: wrap;}
        .bq-form .form-group { margin-bottom: 0; flex: 1; min-width: 150px; }
        .bq-form input { padding: 10px 10px 10px 35px; }
        .btn-add-bq { background: var(--purple); color: white; border: none; padding: 11px 20px; border-radius: 6px; cursor: pointer; font-weight: bold; height: 42px; transition: 0.2s;}
        .btn-add-bq:hover { filter: brightness(1.1); }
        
        .bq-list { display: flex; flex-direction: column; gap: 8px; max-height: 200px; overflow-y: auto; }
        .bq-item { background: #16191d; border: 1px solid var(--border-color); padding: 10px 15px; border-radius: 6px; display: flex; justify-content: space-between; align-items: center; }
        .bq-item span { font-size: 13px; color: white; font-weight: bold; }
        .bq-item small { color: var(--text-muted); background: #272c33; padding: 2px 6px; border-radius: 4px; margin-right: 10px; font-size: 11px;}
        .bq-del { color: var(--danger); cursor: pointer; text-decoration: none; font-size: 14px; }
        .bq-del:hover { filter: brightness(1.5); }

        @media (max-width: 768px) {
            .menu-toggle { display: block; margin-right: 15px; }
            .sidebar { position: fixed; left: -260px; height: 100%; box-shadow: 5px 0 15px rgba(0,0,0,0.5); }
            .sidebar.active { left: 0; }
            .sidebar-overlay.active { display: block; }
            .topbar { padding: 15px 20px; justify-content: flex-start;}
            .topbar-right { margin-left: auto; }
            .content-area { padding: 15px; }
            .api-card { padding: 20px; }
        }
    </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;">Integrações API</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">
            
            <div class="container-box">
                <h2 class="page-title"><i class="fas fa-network-wired"></i> Integrações Externas</h2>
                <p class="page-subtitle">Configure aqui os links e tokens das suas plataformas parceiras. Após cadastrar a API, você pode gerenciar os pacotes (Bouquets) disponíveis.</p>

                <?php echo $mensagem; ?>

                <form method="POST">
                    <input type="hidden" name="action_save_apis" value="1">
                    
                    <div class="api-card binstream">
                        <div class="api-header">
                            <div class="api-icon"><i class="fas fa-satellite-dish"></i></div>
                            <div style="width: 100%;">
                                <h3>Conexão Binstream</h3>
                                <p>Integração oficial para servidores Binstream.</p>
                            </div>
                        </div>
                        
                        <div class="form-group">
                            <label>URL do Servidor Binstream</label>
                            <div class="input-group">
                                <i class="fas fa-link"></i>
                                <input type="text" name="api_binstream_url" placeholder="Ex: http://api.binstream.com/" value="<?php echo htmlspecialchars($api_binstream_url); ?>">
                            </div>
                        </div>
                        <div class="form-group">
                            <label>Token de Acesso (API Key)</label>
                            <div class="input-group">
                                <i class="fas fa-key"></i>
                                <input type="password" name="api_binstream_key" placeholder="Cole a sua chave secreta aqui..." value="<?php echo htmlspecialchars($api_binstream_key); ?>">
                            </div>
                        </div>

                    </div>

                    <div class="api-card p2p">
                        <div class="api-header">
                            <div class="api-icon"><i class="fas fa-share-nodes"></i></div>
                            <div>
                                <h3>Conexão Servidor P2P (Pet Pee)</h3>
                                <p>Gestão e criação automatizada de linhas P2P.</p>
                            </div>
                        </div>
                        
                        <div class="form-group">
                            <label>URL da API P2P</label>
                            <div class="input-group">
                                <i class="fas fa-link"></i>
                                <input type="text" name="api_p2p_url" placeholder="Ex: http://painelp2p.com/api/" value="<?php echo htmlspecialchars($api_p2p_url); ?>">
                            </div>
                        </div>
                        <div class="form-group">
                            <label>Token de Acesso (API Key)</label>
                            <div class="input-group">
                                <i class="fas fa-key"></i>
                                <input type="password" name="api_p2p_key" placeholder="Cole a sua chave secreta aqui..." value="<?php echo htmlspecialchars($api_p2p_key); ?>">
                            </div>
                        </div>
                    </div>

                    <button type="submit" class="btn-salvar"><i class="fas fa-save"></i> SALVAR INTEGRAÇÕES DE CONEXÃO</button>
                </form>
                
                <div class="api-card binstream" style="margin-top: 30px;">
                    <div class="bouquet-area" style="background: transparent; border: none; padding: 0; margin: 0;">
                        <h4><i class="fas fa-box-open"></i> Pacotes (Bouquets) do Binstream</h4>
                        
                        <form method="POST" style="margin: 0;">
                            <input type="hidden" name="action_add_bouquet" value="1">
                            <input type="hidden" name="servidor_nome" value="binstream">
                            <div class="bq-form">
                                <div class="form-group">
                                    <label>ID do Pacote</label>
                                    <div class="input-group"><i class="fas fa-hashtag"></i><input type="number" name="bouquet_id" placeholder="Ex: 5" required></div>
                                </div>
                                <div class="form-group" style="flex: 2;">
                                    <label>Nome do Pacote (Aparece pro Cliente)</label>
                                    <div class="input-group"><i class="fas fa-tag"></i><input type="text" name="bouquet_name" placeholder="Ex: Pacote Completo HD" required></div>
                                </div>
                                <button type="submit" class="btn-add-bq"><i class="fas fa-plus"></i> Adicionar</button>
                            </div>
                        </form>

                        <div class="bq-list">
                            <?php if(empty($bouquets_binstream)): ?>
                                <div style="color:var(--text-muted); font-size:12px; text-align:center; padding:10px;">Nenhum pacote Binstream cadastrado.</div>
                            <?php else: ?>
                                <?php foreach($bouquets_binstream as $bq): ?>
                                    <div class="bq-item">
                                        <div><small>ID: <?php echo $bq['bouquet_id']; ?></small> <span><?php echo htmlspecialchars($bq['bouquet_name']); ?></span></div>
                                        <a href="?del_bq=<?php echo $bq['id']; ?>" class="bq-del" title="Excluir"><i class="fas fa-times"></i></a>
                                    </div>
                                <?php endforeach; ?>
                            <?php endif; ?>
                        </div>
                    </div>
                </div>

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

    <script>
        const btnMenu = document.getElementById('btn-menu');
        const sidebar = document.getElementById('sidebar');
        const overlay = document.getElementById('overlay');

        function toggleMenu() { sidebar.classList.toggle('active'); overlay.classList.toggle('active'); }
        btnMenu.addEventListener('click', toggleMenu);
        overlay.addEventListener('click', toggleMenu);

        function toggleSubmenu(id) {
            const sub = document.getElementById(id);
            const arrow = document.getElementById('arrow-' + id);
            if (sub.style.display === "block") { sub.style.display = "none"; arrow.classList.remove('rotate'); } 
            else { sub.style.display = "block"; arrow.classList.add('rotate'); }
        }
        
        setTimeout(function() { try { var alerts = document.querySelectorAll('.alert'); for(var i=0; i<alerts.length; i++) { alerts[i].style.opacity='0'; } setTimeout(function(){ for(var j=0; j<alerts.length; j++) { alerts[j].style.display='none'; } }, 500); } catch(e) {} }, 4000);
    </script>
    <script src="tema.js"></script>
</body>
</html>