<?php
class MHP_Admin_Menu {

    public function __construct() {
        add_action('admin_menu', [$this, 'add_menu']);
        add_action('admin_init', [$this, 'handle_submission']);
    }

    public function add_menu() {
        add_management_page(
            'Media Hub Pro',
            'Media Hub Pro',
            'manage_options',
            'media-hub-pro',
            [$this, 'render_page']
        );
    }
    
public function handle_submission() {
    if (!isset($_POST['mhp_action'])) return;
    if (!current_user_can('manage_options')) return;
    check_admin_referer('mhp_nonce');

    if ($_POST['mhp_action'] !== 'series') {
        // برای فیلم بدون تغییر
        $this->run_handler('movie');
        return;
    }

    // ======== برای سریال: ابتدا مراحل اولیه ========
    // 1. افزودن سریال جدید (اگر لازم بود)
    if (isset($_POST['addNewSeries'])) {
        include MHP_DIR . 'handlers/series/add-new-series.php';
    }

    // 2. حالت جایگزینی (اگر ON بود)
    if (isset($_POST['replaceToggle'])) {
        include MHP_DIR . 'handlers/series/replace-mode.php';
    }

    // 3. اجرای کد انتخاب‌شده (1-5)
    $code = sanitize_text_field($_POST['series_code'] ?? 'code-1');
    $handler_file = MHP_DIR . "handlers/series/{$code}.php";
    if (file_exists($handler_file)) {
        ob_start();
        include $handler_file;
        $output = ob_get_clean();
        set_transient('mhp_message', $output, 30);
    } else {
        set_transient('mhp_message', '<div class="error"><p>❌ هندلر یافت نشد.</p></div>', 30);
    }

    wp_redirect(add_query_arg('tab', 'series', $_SERVER['REQUEST_URI']));
    exit;
}

private function run_handler($type) {
    $code = sanitize_text_field($_POST[$type . '_code'] ?? ($type === 'movie' ? 'code-1' : 'code-1'));
    $handler_file = MHP_DIR . "handlers/{$type}/{$code}.php";
    if (file_exists($handler_file)) {
        ob_start();
        include $handler_file;
        $output = ob_get_clean();
        set_transient('mhp_message', $output, 30);
    } else {
        set_transient('mhp_message', '<div class="error"><p>❌ هندلر یافت نشد.</p></div>', 30);
    }
    wp_redirect(add_query_arg('tab', $type, $_SERVER['REQUEST_URI']));
    exit;
}

    public function render_page() {
        if (!current_user_can('manage_options')) return;

        $message = get_transient('mhp_message');
        delete_transient('mhp_message');

        $active_tab = isset($_GET['tab']) && in_array($_GET['tab'], ['movie', 'series']) ? $_GET['tab'] : 'movie';
        ?>
        <div class="wrap">
            <h1>Media Hub Pro</h1>
            <?php if ($message): echo $message; endif; ?>

            <div style="display:flex;margin-bottom:20px;">
                <a href="?page=media-hub-pro&tab=movie" class="button <?= $active_tab === 'movie' ? 'button-primary' : '' ?>">فیلم</a>
                <a href="?page=media-hub-pro&tab=series" class="button <?= $active_tab === 'series' ? 'button-primary' : '' ?>" style="margin-right:10px;">سریال</a>
            </div>

            <form method="post">
                <?php wp_nonce_field('mhp_nonce'); ?>
                <input type="hidden" name="mhp_action" value="<?= $active_tab ?>">

                <?php
                if ($active_tab === 'movie') {
                    include MHP_DIR . 'admin/views/movie-tab.php';
                } else {
                    include MHP_DIR . 'admin/views/series-tab.php';
                }
                ?>
                <?php submit_button("اجرای {$active_tab}"); ?>
            </form>
        </div>
        <?php
    }
}