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

$pdo = getConexaoAtiva(); // Banco Principal
$pdo_int = getConexaoInterna(); // Banco Local (Obrigatório para configurações)

$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'; 
$nome_usuario = $_SESSION['username'] ?? 'Usuário';
$user_id_logado = $_SESSION['user_id'];

// ====================================================================
// 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 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_painel = $pdo_int->query("SELECT * FROM painel_config LIMIT 1")->fetch(PDO::FETCH_ASSOC);
        if ($config_painel) {
            $nome_painel = !empty($config_painel['nome_painel']) ? $config_painel['nome_painel'] : $nome_painel;
            $logo_url = !empty($config_painel['logo_url']) ? $config_painel['logo_url'] : $logo_url;
            $cor_primaria = !empty($config_painel['cor_primaria']) ? $config_painel['cor_primaria'] : $cor_primaria;
        }
    }
} catch (Exception $e) {}

// Busca saldo no Banco Interno
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; }

// ==============================================================================
// 1. AUTO-CRIAÇÃO DA TABELA E DA COLUNA DE REVENDEDOR (MULTI-TENANT NO BANCO INTERNO)
// ==============================================================================
try {
    $pdo_int->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo_int->exec("CREATE TABLE IF NOT EXISTS `billing_planos` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `owner_id` int(11) NOT NULL DEFAULT 1,
        `nome_plano` varchar(100) NOT NULL,
        `meses` int(11) NOT NULL,
        `valor` decimal(10,2) NOT NULL,
        `ativo` tinyint(1) DEFAULT 1,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
    
    // Auto-atualização: Adiciona a coluna owner_id se for uma versão antiga da tabela
    $check_col = $pdo_int->query("SHOW COLUMNS FROM `billing_planos` LIKE 'owner_id'");
    if (!$check_col->fetch()) {
        $pdo_int->exec("ALTER TABLE `billing_planos` ADD COLUMN `owner_id` INT(11) NOT NULL DEFAULT 1 AFTER `id`");
    }
} catch (PDOException $e) {}

$mensagem = "";

// ==============================================================================
// 2. SALVAR OU EDITAR PLANO (Amarrado ao ID do Revendedor - Salva no Banco Interno)
// ==============================================================================
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['acao'])) {
    if ($_POST['acao'] === 'salvar') {
        $nome = trim($_POST['nome_plano']);
        $meses = (int)$_POST['meses'];
        $valor = str_replace(',', '.', $_POST['valor']); 
        
        if (!empty($_POST['id_plano'])) {
            // Garante que o cara só edite o plano DELE
            $pdo_int->prepare("UPDATE billing_planos SET nome_plano=?, meses=?, valor=? WHERE id=? AND owner_id=?")->execute([$nome, $meses, $valor, $_POST['id_plano'], $user_id_logado]);
            $mensagem = "<div class='alert success'><i class='fas fa-check-circle'></i> Plano atualizado!</div>";
        } else {
            $pdo_int->prepare("INSERT INTO billing_planos (owner_id, nome_plano, meses, valor) VALUES (?, ?, ?, ?)")->execute([$user_id_logado, $nome, $meses, $valor]);
            $mensagem = "<div class='alert success'><i class='fas fa-check-circle'></i> Plano criado com sucesso!</div>";
        }
    }
}

// ==============================================================================
// 3. EXCLUIR PLANO
// ==============================================================================
if (isset($_GET['del'])) {
    $pdo_int->prepare("DELETE FROM billing_planos WHERE id=? AND owner_id=?")->execute([$_GET['del'], $user_id_logado]);
    header("Location: admin_planos.php"); exit;
}

// Puxa APENAS os planos de quem está logado (Do Banco Interno)
$stmtPlanos = $pdo_int->prepare("SELECT * FROM billing_planos WHERE owner_id = ? ORDER BY meses ASC");
$stmtPlanos->execute([$user_id_logado]);
$planos = $stmtPlanos->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, maximum-scale=1.0, user-scalable=no">
    <title>Gerenciar Planos - <?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: #0f1114; 
            --bg-sidebar: #1e2227; 
            --bg-card: #272c33; 
            --text-main: #d1d5da; 
            --text-muted: #8a94a1; 
            --accent: <?php echo $cor_primaria; ?>; 
            --border-color: #3a4149; 
            --success: #28a745; 
            --danger: #dc3545; 
            --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; }

        /* SIDEBAR PADRÃO */
        .sidebar { width: 260px; background-color: var(--bg-sidebar); border-right: 1px solid var(--border-color); display: flex; flex-direction: column; transition: all 0.3s ease; z-index: 1001; flex-shrink: 0; }
        .sidebar-header { padding: 25px 20px; text-align: center; border-bottom: 1px solid var(--border-color); color: white; }
        .sidebar-logo { max-width: 180px; max-height: 60px; 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; }
        .user-info .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; flex: 1; overflow-y: auto; }
        .menu-item { padding: 14px 25px; color: var(--text-main); text-decoration: none; display: flex; align-items: center; transition: 0.2s; font-size: 15px; border-left: 4px solid transparent; cursor: pointer; }
        .menu-item i:first-child { margin-right: 15px; width: 20px; text-align: center; font-size: 16px; color: var(--text-muted); }
        .menu-item:hover, .menu-item.active { background: #2c3138; color: white; border-left-color: var(--accent); }
        .menu-item.active i:first-child { color: var(--accent); }
        
        .submenu { display: none; background: #121519; 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 25px 8px; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: bold; letter-spacing: 1px; }
        .logout-btn { padding: 15px; background-color: var(--danger); color: white; text-align: center; text-decoration: none; font-weight: bold; margin-top: auto; }

        /* CONTEÚDO PRINCIPAL */
        .main { flex: 1; display: flex; flex-direction: column; overflow-y: auto; width: 100%; position: relative; }
        .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); }
        .content-area { padding: 25px; flex: 1; }

        .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); white-space: nowrap; display: inline-block; }

        /* GRID RESPONSIVO PARA CELULAR */
        .layout-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 20px; align-items: start; }
        
        .form-card { background: var(--bg-card); padding: 20px; border-radius: 10px; border: 1px solid var(--border-color); }
        .form-card h3 { margin-top: 0; margin-bottom: 15px; font-size: 16px; color: white; border-bottom: 1px solid var(--border-color); padding-bottom: 10px; }
        .form-group { margin-bottom: 15px; }
        .form-group label { display: block; margin-bottom: 5px; font-size: 12px; font-weight: bold; color: var(--text-muted); text-transform: uppercase; }
        .form-group input { width: 100%; padding: 12px; background: #121519; border: 1px solid var(--border-color); color: white; border-radius: 5px; box-sizing: border-box; }
        
        .btn-submit { width: 100%; background: var(--accent); color: white; border: none; padding: 12px; border-radius: 5px; font-weight: bold; cursor: pointer; transition: 0.2s; }
        .btn-submit:hover { filter: brightness(1.2); }
        .btn-clear { width: 100%; background: transparent; color: var(--text-muted); border: 1px solid var(--border-color); padding: 12px; border-radius: 5px; font-weight: bold; cursor: pointer; transition: 0.2s; margin-top: 10px; }
        .btn-clear:hover { background: #3a4149; color: white; }

        .table-container { background: var(--bg-card); border-radius: 10px; border: 1px solid var(--border-color); overflow-x: auto; padding: 20px; }
        table { width: 100%; border-collapse: collapse; min-width: 500px; }
        th { background: rgba(0,0,0,0.2); padding: 15px; text-align: left; font-size: 11px; color: var(--text-muted); text-transform: uppercase; }
        td { padding: 12px 15px; border-bottom: 1px solid var(--border-color); font-size: 14px; }
        
        .btn-acao { padding: 6px 12px; border-radius: 4px; color: white; border: none; cursor: pointer; font-size: 12px; text-decoration: none; display: inline-block; margin-left: 5px; }
        .btn-edit { background: var(--accent); }
        .btn-del { background: var(--danger); }

        .alert { padding: 15px; border-radius: 5px; margin-bottom: 20px; font-weight: bold; }
        .alert.success { background: rgba(40, 167, 69, 0.15); border: 1px solid var(--success); color: var(--success); }

        .menu-toggle { display: none; background: none; border: none; color: white; font-size: 24px; cursor: pointer; }
        .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1000; }

        /* A MÁGICA DO CELULAR: Empilha os blocos */
        @media (max-width: 900px) {
            .layout-grid { grid-template-columns: 1fr; }
        }
        @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; }
            .sidebar-overlay.active { display: block; }
            .menu-toggle { display: block; margin-right: 15px; }
            .topbar { padding: 15px 20px; justify-content: flex-start; }
            .topbar-right { margin-left: auto;}
            .content-area { padding: 15px; padding-bottom: 100px;}
        }
    </style>
</head>
<body>

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

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

    <div class="main">
        <header class="topbar">
            <div style="display: flex; align-items: center;">
                <button class="menu-toggle" id="btn-menu" onclick="toggleMenu()"><i class="fas fa-bars"></i></button>
                <h2 style="margin:0; color: white;">Planos da Área do Cliente</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>
                <a href="../clientes/" target="_blank" style="color:var(--info); text-decoration:none; font-size:14px; font-weight:bold; margin-left:15px;"><i class="fas fa-external-link-alt"></i> Portal do Cliente</a>
            </div>
        </header>

        <div class="content-area">
            <?php echo $mensagem; ?>

            <div class="layout-grid">
                <div class="form-card">
                    <h3><i class="fas fa-plus-circle"></i> Adicionar / Editar Plano</h3>
                    <form method="POST">
                        <input type="hidden" name="acao" value="salvar">
                        <input type="hidden" name="id_plano" id="id_plano">
                        
                        <div class="form-group">
                            <label>Nome do Plano (Visível pro Cliente)</label>
                            <input type="text" name="nome_plano" id="nome_plano" required placeholder="Ex: Assinatura Trimestral">
                        </div>
                        
                        <div class="form-group">
                            <label>Tempo liberado (em Meses)</label>
                            <input type="number" name="meses" id="meses" required placeholder="Ex: 3">
                        </div>
                        
                        <div class="form-group">
                            <label>Valor (R$)</label>
                            <input type="text" name="valor" id="valor" required placeholder="Ex: 89.90">
                        </div>
                        
                        <button type="submit" class="btn-submit">SALVAR PLANO</button>
                        <button type="button" class="btn-clear" onclick="limparForm()">Limpar / Novo Plano</button>
                    </form>
                </div>

                <div class="table-container">
                    <h3 style="margin-top: 0; color: white; margin-bottom: 15px; border-bottom: 1px solid var(--border-color); padding-bottom: 10px;">Meus Planos Ativos</h3>
                    <table>
                        <thead>
                            <tr>
                                <th>Nome do Pacote</th>
                                <th>Duração</th>
                                <th>Valor</th>
                                <th style="text-align:right;">Ações</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php foreach($planos as $p): ?>
                            <tr>
                                <td><strong style="color:white;"><?php echo htmlspecialchars($p['nome_plano']); ?></strong></td>
                                <td><span style="background:#121519; padding:4px 8px; border-radius:4px; font-size:12px;"><i class="far fa-calendar-alt"></i> <?php echo $p['meses']; ?> Mês(es)</span></td>
                                <td style="color: var(--success); font-weight: bold; font-size:16px;">R$ <?php echo number_format($p['valor'], 2, ',', '.'); ?></td>
                                <td style="text-align:right;">
                                    <button class="btn-acao btn-edit" onclick="editarPlano(<?php echo $p['id']; ?>, '<?php echo addslashes($p['nome_plano']); ?>', <?php echo $p['meses']; ?>, '<?php echo $p['valor']; ?>')"><i class="fas fa-edit"></i></button>
                                    <a href="?del=<?php echo $p['id']; ?>" class="btn-acao btn-del" onclick="return confirm('Excluir este plano definitivamente?')"><i class="fas fa-trash"></i></a>
                                </td>
                            </tr>
                            <?php endforeach; ?>
                            <?php if(empty($planos)) echo "<tr><td colspan='4' style='text-align:center; color:var(--text-muted);'>Você ainda não configurou nenhum plano de venda.</td></tr>"; ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
        <?php include 'rodape.php'; ?>
    </div>

    <script>
        const sidebar = document.getElementById('sidebar');
        const overlay = document.getElementById('overlay');
        function toggleMenu() { sidebar.classList.toggle('active'); overlay.classList.toggle('active'); }

        function toggleSubmenu(id) {
            const sub = document.getElementById(id);
            const 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'); }
        }

        function editarPlano(id, nome, meses, valor) {
            document.getElementById('id_plano').value = id;
            document.getElementById('nome_plano').value = nome;
            document.getElementById('meses').value = meses;
            document.getElementById('valor').value = valor;
        }
        function limparForm() {
            document.getElementById('id_plano').value = '';
            document.getElementById('nome_plano').value = '';
            document.getElementById('meses').value = '';
            document.getElementById('valor').value = '';
        }
    </script>
    <script src="tema.js"></script>
</body>
</html>