<?php
ob_start();
ini_set('display_errors', 0); // Oculta erros na tela para não quebrar o layout
// --- CORREÇÃO DE MEMÓRIA PARA CATEGORIAS GIGANTES DE FILMES ---
ini_set('memory_limit', '-1'); 
set_time_limit(0);

session_start();
require_once 'config.php'; 

$pdo = getConexaoAtiva(); // Banco Principal (Onde ficam as streams e categories)
$pdo_int = getConexaoInterna(); // Banco Local (Onde ficam as configs e os créditos)

$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) {}

$tabela_revendedores = ($modo_ativo === 'xui') ? '`users`' : '`reg_users`';

// --- 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_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) {}
// --- FIM: BUSCA DE PERSONALIZAÇÃO DINÂMICA ---

// SEGURANÇA: Apenas admin acessa
if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] !== 'admin') { 
    header("Location: login.php"); 
    exit; 
}

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

// Busca créditos do usuário para o menu lateral
try {
    $user_credits = $pdo->query("SELECT credits FROM $tabela_revendedores WHERE id = " . intval($user_id_logado))->fetchColumn() ?: 0;
} catch (Exception $e) { 
    $user_credits = 0; 
}

$msg = "";

// LÓGICA DE EXCLUSÃO (COMPATÍVEL COM XTREAM E XUI ONE)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $pdo->beginTransaction();

        // 1. LIMPEZA TOTAL
        if (isset($_POST['limpeza_total'])) {
            try { $pdo->exec("DELETE FROM user_activity"); } catch(Exception $e){}
            try { $pdo->exec("DELETE FROM streams"); } catch(Exception $e){}
            try { $pdo->exec("DELETE FROM series_episodes"); } catch(Exception $e){}
            try { $pdo->exec("DELETE FROM streams_seasons"); } catch(Exception $e){}
            try { $pdo->exec("DELETE FROM series"); } catch(Exception $e){}
            try { $pdo->exec("DELETE FROM stream_categories"); } catch(Exception $e){}
            
            // XUI ONE Específicos
            try { $pdo->exec("DELETE FROM vod_categories"); } catch(Exception $e){}
            try { $pdo->exec("DELETE FROM series_categories"); } catch(Exception $e){}
            try { $pdo->exec("DELETE FROM streams_series"); } catch(Exception $e){}
            try { $pdo->exec("DELETE FROM streams_categories"); } catch(Exception $e){}
            try { $pdo->exec("DELETE FROM categories"); } catch(Exception $e){}
            
            $msg = "<div class='alert success'><i class='fas fa-check-circle'></i> Limpeza completa realizada com sucesso!</div>";
        }

        // 2. EXCLUIR CATEGORIAS SELECIONADAS (Canais, Filmes ou Séries)
        if (isset($_POST['delete_cats']) && !empty($_POST['cat_ids'])) {
            $ids_raw = $_POST['cat_ids'];
            $ids = implode(',', array_map('intval', $ids_raw));
            $tipo_cat = $_POST['tipo_cat'] ?? 'live';
            
            // MÁGICA: Para o XUI, a query de apagar conteúdo precisa buscar com o colchete e as aspas (ex: LIKE '%"123"%')
            $where_xui_array = [];
            foreach ($ids_raw as $id_raw) {
                $id_int = intval($id_raw);
                $where_xui_array[] = "category_id LIKE '%\"$id_int\"%' OR category_id LIKE '%[$id_int]%' OR FIND_IN_SET($id_int, REPLACE(REPLACE(REPLACE(category_id, '[', ''), ']', ''), ' ', '')) > 0";
            }
            $where_xui_sql = implode(' OR ', $where_xui_array);
            
            if ($tipo_cat === 'series') {
                if ($modo_ativo === 'xui') {
                    // --- EXCLUSÃO DE SÉRIES NO XUI ONE ---
                    $stmt = $pdo->query("SELECT id FROM streams_series WHERE $where_xui_sql");
                    $series_ids = $stmt->fetchAll(PDO::FETCH_COLUMN);
                    
                    if (!empty($series_ids)) {
                        $s_ids = implode(',', $series_ids);
                        try { $pdo->exec("DELETE FROM series_episodes WHERE series_id IN ($s_ids)"); } catch (Exception $e) {}
                        try { $pdo->exec("DELETE FROM streams_seasons WHERE stream_id IN ($s_ids)"); } catch (Exception $e) {}
                        $pdo->exec("DELETE FROM streams_series WHERE id IN ($s_ids)");
                    }
                } else {
                    // --- EXCLUSÃO DE SÉRIES NO XTREAM UI ---
                    $stmt = $pdo->query("SELECT id FROM series WHERE category_id IN ($ids)");
                    $series_ids = $stmt->fetchAll(PDO::FETCH_COLUMN);
                    
                    if (!empty($series_ids)) {
                        $s_ids = implode(',', $series_ids);
                        try { $pdo->exec("DELETE FROM series_episodes WHERE series_id IN ($s_ids)"); } catch (Exception $e) {}
                        try { $pdo->exec("DELETE FROM streams_seasons WHERE stream_id IN ($s_ids)"); } catch (Exception $e) {}
                        $pdo->exec("DELETE FROM series WHERE id IN ($s_ids)");
                    }
                }
                
                // Remove a categoria em si (Tenta Xtream e XUI)
                try { $pdo->exec("DELETE FROM stream_categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                try { $pdo->exec("DELETE FROM series_categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                try { $pdo->exec("DELETE FROM streams_categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                try { $pdo->exec("DELETE FROM categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                
            } elseif ($tipo_cat === 'vod') {
                if ($modo_ativo === 'xui') {
                    $pdo->exec("DELETE FROM streams WHERE type = 2 AND ($where_xui_sql)");
                } else {
                    $pdo->exec("DELETE FROM streams WHERE category_id IN ($ids)");
                }
                
                // Remove a categoria em si (Tenta Xtream e XUI)
                try { $pdo->exec("DELETE FROM stream_categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                try { $pdo->exec("DELETE FROM vod_categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                try { $pdo->exec("DELETE FROM streams_categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                try { $pdo->exec("DELETE FROM categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                
            } else {
                // Live (Canais)
                if ($modo_ativo === 'xui') {
                    $pdo->exec("DELETE FROM streams WHERE type = 1 AND ($where_xui_sql)");
                } else {
                    $pdo->exec("DELETE FROM streams WHERE category_id IN ($ids)");
                }
                
                try { $pdo->exec("DELETE FROM stream_categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                try { $pdo->exec("DELETE FROM streams_categories WHERE id IN ($ids)"); } catch (Exception $e) {}
                try { $pdo->exec("DELETE FROM categories WHERE id IN ($ids)"); } catch (Exception $e) {}
            }
            
            $msg = "<div class='alert success'><i class='fas fa-check-circle'></i> Itens excluídos com sucesso!</div>";
        }

        $pdo->commit();
    } catch (Exception $e) {
        $pdo->rollBack();
        $msg = "<div class='alert danger'><i class='fas fa-exclamation-triangle'></i> Erro: " . $e->getMessage() . "</div>";
    }
}

// ==============================================================================
// BUSCA CATEGORIAS MÁGICA HÍBRIDA (Filtradas por category_type ou tabelas soltas)
// ==============================================================================
$cat_canais = [];
$cat_filmes = [];
$cat_series = [];

// Função auxiliar
function buscarCategoriasSeguro($pdo, $queries) {
    foreach ($queries as $sql) {
        try {
            $stmt = $pdo->query($sql);
            if ($stmt) {
                $res = $stmt->fetchAll(PDO::FETCH_ASSOC);
                if (!empty($res)) return $res; // Se achar dados, retorna e ignora o resto
            }
        } catch (Exception $e) { continue; }
    }
    return [];
}

// CORREÇÃO DE PRIORIDADE: Se for XUI, obriga a procurar nas tabelas do XUI primeiro!
if ($modo_ativo === 'xui') {
    $q_canais = [
        "SELECT id, category_name FROM streams_categories WHERE category_type = 'live' ORDER BY category_name ASC",
        "SELECT id, category_name FROM categories WHERE category_type = 'live' OR type = 1 ORDER BY category_name ASC",
        "SELECT id, category_name FROM stream_categories WHERE category_type = 'live' ORDER BY category_name ASC"
    ];
    $q_filmes = [
        "SELECT id, category_name FROM streams_categories WHERE category_type = 'movie' OR category_type = 'vod' ORDER BY category_name ASC",
        "SELECT id, category_name FROM categories WHERE category_type = 'movie' OR type = 2 ORDER BY category_name ASC",
        "SELECT id, category_name FROM vod_categories ORDER BY category_name ASC"
    ];
    $q_series = [
        "SELECT id, category_name FROM streams_categories WHERE category_type = 'series' ORDER BY category_name ASC",
        "SELECT id, category_name FROM categories WHERE category_type = 'series' OR type = 3 ORDER BY category_name ASC",
        "SELECT id, category_name FROM series_categories ORDER BY category_name ASC"
    ];
} else {
    // Modo Xtream UI Padrão
    $q_canais = [
        "SELECT id, category_name FROM stream_categories WHERE category_type = 'live' ORDER BY category_name ASC",
        "SELECT id, category_name FROM stream_categories ORDER BY category_name ASC"
    ];
    $q_filmes = [
        "SELECT id, category_name FROM vod_categories ORDER BY category_name ASC",
        "SELECT id, category_name FROM stream_categories WHERE category_type = 'movie' ORDER BY category_name ASC"
    ];
    $q_series = [
        "SELECT id, category_name FROM series_categories ORDER BY category_name ASC",
        "SELECT id, category_name FROM stream_categories WHERE category_type = 'series' ORDER BY category_name ASC"
    ];
}

$cat_canais = buscarCategoriasSeguro($pdo, $q_canais);
$cat_filmes = buscarCategoriasSeguro($pdo, $q_filmes);
$cat_series = buscarCategoriasSeguro($pdo, $q_series);

?>

<!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>Limpeza - <?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: #16191d; 
            --bg-card: #1c2126; 
            --text-main: #e1e1e1; 
            --accent: <?php echo $cor_primaria; ?>; 
            --danger: #dc3545; 
            --border: #2d3238;
            --success: #28a745;
        }

        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); border-right: 1px solid var(--border); display: flex; flex-direction: column; transition: all 0.3s ease; z-index: 1001; }
        .sidebar-header { padding: 30px 20px; text-align: center; font-size: 22px; font-weight: bold; border-bottom: 1px solid var(--border); color: white;}
        .sidebar-logo { max-width: 180px; max-height: 55px; object-fit: contain; }
        
        .user-info { padding: 20px; text-align: center; border-bottom: 1px solid var(--border); }
        .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: #aeb7c2; 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: #8a94a1; }
        .menu-item:hover, .menu-item.active { background: #22282f; 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 10px; font-size: 11px; text-transform: uppercase; color: #56616d; font-weight: bold; letter-spacing: 1px; }
        .btn-sair { background: #dc3545; color: white; padding: 15px; text-align: center; text-decoration: none; font-weight: bold; margin-top: auto; }

        /* CONTEÚDO PRINCIPAL */
        .main-content { flex: 1; display: flex; flex-direction: column; overflow-y: auto; }
        .topbar { padding: 15px 25px; background: var(--bg-sidebar); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 15px;}
        .content-area { padding: 30px; }
        
        /* ESTILOS DINÂMICOS DO MODO SISTEMA */
        .mode-badge { padding: 6px 15px; border-radius: 20px; font-size: 12px; font-weight: bold; white-space: nowrap; display: inline-block; background: rgba(0, 123, 255, 0.15); color: var(--accent); border: 1px solid var(--accent);}

        /* MOBILE OVERLAY & TOGGLE */
        .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.8); z-index: 1000; }

        /* CARDS E BOTÕES */
        .alert { padding: 15px; border-radius: 6px; margin-bottom: 20px; border: 1px solid transparent; }
        .alert.success { background: rgba(40, 167, 69, 0.1); color: #28a745; border-color: #28a745; }
        .alert.danger { background: rgba(220, 53, 69, 0.1); color: #dc3545; border-color: #dc3545; }

        .btn-total { background: var(--danger); color: white; border: none; padding: 20px; border-radius: 8px; width: 100%; font-weight: bold; cursor: pointer; margin-bottom: 30px; font-size: 16px; box-shadow: 0 4px 15px rgba(220, 53, 69, 0.3); transition: 0.3s; }
        .btn-total:hover { transform: translateY(-2px); background: #c82333; }

        .clean-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 25px; }
        .clean-card { background: var(--bg-card); border-radius: 12px; padding: 20px; border: 1px solid var(--border); }
        .list-box { height: 220px; overflow-y: auto; background: #121519; margin: 15px 0; border-radius: 6px; border: 1px solid #2d3238; padding: 5px; }
        .item-row { display: flex; align-items: center; padding: 10px; border-bottom: 1px solid #24292e; cursor: pointer; color: var(--text-main); font-weight: normal; margin-bottom: 0; }
        .item-row:hover { background: #1a1e23; }
        .item-row:last-child { border: none; }
        .item-row input { margin-right: 12px; transform: scale(1.2); accent-color: var(--accent); }
        .btn-del { background: #323941; color: white; border: none; padding: 12px; border-radius: 6px; width: 100%; cursor: pointer; font-weight: bold; transition: 0.3s; }
        .btn-del:hover { background: var(--danger); }

        /* RESPONSIVIDADE */
        @media (max-width: 992px) {
            .sidebar { position: fixed; left: -260px; height: 100%; }
            .sidebar.active { left: 0; }
            .menu-toggle { display: block; }
            .sidebar-overlay.active { display: block; }
            .topbar-right { margin-left: auto; }
            .topbar h3 { font-size: 16px !important; }
        }
    </style>
</head>
<body>

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

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

    <div class="main-content">
        <header class="topbar">
            <div style="display:flex; align-items:center; gap: 10px;">
                <button class="menu-toggle" onclick="toggleSidebar()"><i class="fas fa-bars"></i></button>
                <h3 style="margin:0; font-size: 18px; color:white;">Limpeza de Dados</h3>
            </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 echo $msg; ?>

            <form method="POST" onsubmit="return confirm('ATENÇÃO: Isso apagará TUDO no painel. Prosseguir?')">
                <button type="submit" name="limpeza_total" class="btn-total">
                    <i class="fas fa-exclamation-triangle"></i> RESETAR TODO O CONTEÚDO (Zerar Painel)
                </button>
            </form>

            <div class="clean-grid">
                
                <div class="clean-card">
                    <h4 style="margin-top: 0;"><i class="fas fa-tv" style="color:var(--accent)"></i> Canais de TV</h4>
                    <form method="POST">
                        <input type="hidden" name="tipo_cat" value="live">
                        <div class="list-box">
                            <?php foreach($cat_canais as $c): ?>
                            <label class="item-row">
                                <input type="checkbox" name="cat_ids[]" value="<?php echo $c['id']; ?>"> <?php echo htmlspecialchars($c['category_name']); ?>
                            </label>
                            <?php endforeach; ?>
                        </div>
                        <button type="submit" name="delete_cats" class="btn-del"><i class="fas fa-trash"></i> Excluir Selecionados</button>
                    </form>
                </div>

                <div class="clean-card">
                    <h4 style="margin-top: 0;"><i class="fas fa-film" style="color:#f39c12"></i> Filmes (VOD)</h4>
                    <form method="POST">
                        <input type="hidden" name="tipo_cat" value="vod">
                        <div class="list-box">
                            <?php foreach($cat_filmes as $f): ?>
                            <label class="item-row">
                                <input type="checkbox" name="cat_ids[]" value="<?php echo $f['id']; ?>"> <?php echo htmlspecialchars($f['category_name']); ?>
                            </label>
                            <?php endforeach; ?>
                        </div>
                        <button type="submit" name="delete_cats" class="btn-del"><i class="fas fa-trash"></i> Excluir Selecionados</button>
                    </form>
                </div>

                <div class="clean-card">
                    <h4 style="margin-top: 0;"><i class="fas fa-video" style="color:#9b59b6"></i> Séries</h4>
                    <form method="POST">
                        <input type="hidden" name="tipo_cat" value="series">
                        <div class="list-box">
                            <?php foreach($cat_series as $s): ?>
                            <label class="item-row">
                                <input type="checkbox" name="cat_ids[]" value="<?php echo $s['id']; ?>"> <?php echo htmlspecialchars($s['category_name']); ?>
                            </label>
                            <?php endforeach; ?>
                        </div>
                        <button type="submit" name="delete_cats" class="btn-del"><i class="fas fa-trash"></i> Excluir Séries e Episódios</button>
                    </form>
                </div>

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

    <script>
        function toggleSidebar() {
            document.getElementById('sidebar').classList.toggle('active');
            document.getElementById('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 === "") {
                sub.style.display = "none";
                if(arrow) arrow.classList.remove('rotate');
            } else {
                sub.style.display = "block";
                if(arrow) arrow.classList.add('rotate');
            }
        }
    </script>
    <script src="tema.js"></script>
</body>
</html>