<?php
if($text == '📡 تنظیم کانال ها' && ($user->is_owner || $user->is_admin)) {
    setStep($chat_id, 'admin:channel_settings');
    sendMessage($chat_id, "یکی از کانال‌های زیر را برای تنظیم انتخاب کنید:", $admin_channels_keyboard);
    die;
}


if($user->step == 'admin:channel_settings' && ($user->is_owner || $user->is_admin)) {

if($text == '📢 کانال خرید کاربران') {
        setStep($chat_id, 'admin:edit_channel_purchase');
        sendMessage($chat_id, "لطفا شناسه عددی (Chat ID) کانال خرید کاربران را وارد کنید:", $admin_back_keyboard);
        die;
}


if($text == '🛍 کانال سفارش جدید') {
        setStep($chat_id, 'admin:edit_channel_order');
        sendMessage($chat_id, "لطفا شناسه عددی (Chat ID) کانال سفارش جدید را وارد کنید:", $admin_back_keyboard);
        die;
}


if($text == '📋 کانال گزارشات') {
        setStep($chat_id, 'admin:edit_channel_reports');
        sendMessage($chat_id, "لطفا شناسه عددی (Chat ID) کانال گزارشات را وارد کنید:", $admin_back_keyboard);
        die;
}


if($text == '🔒 کانال عضویت اجباری') {
        setStep($chat_id, 'admin:force_join_menu');
        $current = settings('channel_force_join');
        $channels = json_decode($current, true);

if(!is_array($channels)) {
            $channels = $current ? [$current] : [];
}

        $list = "📌 *لیست کانال‌های جوین اجباری:*\n\n";

if(empty($channels)) {
            $list .= "(هیچ کانالی تنظیم نشده است)";
} else {

foreach($channels as $i => $chan) {
                $num = $i + 1;
                $list .= "$num. $chan\n";
}

}

        $keyboard = [
            [['text' => '➕ افزودن کانال'], ['text' => '➖ حذف کانال']],
            [['text' => '🔙 بازگشت به مدیریت']]
        ];
        sendMessage($chat_id, "$list\n\n👇 یکی از گزینه‌های زیر را انتخاب کنید:", json_encode(['keyboard' => $keyboard, 'resize_keyboard' => true]));
        die;
}


if($text == '🔙 بازگشت به مدیریت') {
        setStep($chat_id, 'admin:home');
        sendMessage($chat_id, "به پنل مدیریت بازگشتید.", $admin_keyboard);
        die;
}

}


if(($user->is_owner || $user->is_admin) && in_array($user->step, [
    'admin:edit_channel_purchase',
    'admin:edit_channel_order',
    'admin:edit_channel_reports',
    'admin:force_join_menu',
    'admin:force_join_add',
    'admin:force_join_remove'
])) {

if($text == '🔙 بازگشت به مدیریت') {
        setStep($chat_id, 'admin:home');
        sendMessage($chat_id, "به پنل مدیریت بازگشتید.", $admin_keyboard);
        die;
}


if($user->step == 'admin:force_join_menu') {

if($text == '➕ افزودن کانال') {
            setStep($chat_id, 'admin:force_join_add');
            sendMessage($chat_id, "لطفا آیدی کانال جدید را با @ وارد کنید:\nمثال: @mychannel", $admin_back_keyboard);
            die;
}


if($text == '➖ حذف کانال') {
            $current = settings('channel_force_join');
            $channels = json_decode($current, true);

if(!is_array($channels)) $channels = $current ? [$current] : [];

if(empty($channels)) {
                sendMessage($chat_id, "❌ هیچ کانالی برای حذف وجود ندارد.");
                die;
}

            setStep($chat_id, 'admin:force_join_remove');
            $buttons = [];

foreach($channels as $chan) {
                $buttons[] = [['text' => "🗑 حذف $chan", 'callback_data' => "del_force:$chan"]];
}

            sendMessage($chat_id, "برای حذف روی کانال مورد نظر کلیک کنید:", json_encode(['inline_keyboard' => $buttons]));
            die;
}

}


if($user->step == 'admin:force_join_add') {
        $input = trim($text);

if(stripos($input, 'https://ble.ir/') === 0) {
            $input = '@' . substr($input, strlen('https://ble.ir/'));
}

        $input = preg_replace('/\s+/', '', $input);

if(strpos($input, '@') !== 0) {
            sendMessage($chat_id, "❌ آیدی کانال باید با @ شروع شود.", $admin_back_keyboard);
            die;
}


if(!preg_match('/^@[a-zA-Z0-9_]+$/', $input)) {
            sendMessage($chat_id, "❌ فرمت آیدی کانال نامعتبر است.", $admin_back_keyboard);
            die;
}

        $current = settings('channel_force_join');
        $channels = json_decode($current, true);

if(!is_array($channels)) $channels = $current ? [$current] : [];

if(in_array($input, $channels, true)) {
             sendMessage($chat_id, "⚠️ این کانال قبلاً اضافه شده است.", $admin_back_keyboard);
             die;
}

        $channels[] = $input;
        saveSetting('channel_force_join', json_encode($channels));
        setStep($chat_id, 'admin:force_join_menu');
        $list = "📌 *لیست کانال‌های جوین اجباری:*\n\n";

foreach($channels as $i => $chan) {
            $num = $i + 1;
            $list .= "$num. $chan\n";
}

        $keyboard = [
            [['text' => '➕ افزودن کانال'], ['text' => '➖ حذف کانال']],
            [['text' => '🔙 بازگشت به مدیریت']]
        ];
        sendMessage($chat_id, "✅ کانال $input با موفقیت اضافه شد.\n\n$list", json_encode(['keyboard' => $keyboard, 'resize_keyboard' => true]));
        die;
}


if(in_array($text, ['📢 کانال خرید کاربران', '🛍 کانال سفارش جدید', '📋 کانال گزارشات', '🔒 کانال عضویت اجباری'], true)) {

if($text == '📢 کانال خرید کاربران') setStep($chat_id, 'admin:edit_channel_purchase');

if($text == '🛍 کانال سفارش جدید') setStep($chat_id, 'admin:edit_channel_order');

if($text == '📋 کانال گزارشات') setStep($chat_id, 'admin:edit_channel_reports');

if($text == '🔒 کانال عضویت اجباری') {
             setStep($chat_id, 'admin:force_join_menu');
             $current = settings('channel_force_join');
             $channels = json_decode($current, true);

if(!is_array($channels)) {
                 $channels = $current ? [$current] : [];
}

             $list = "📌 *لیست کانال‌های جوین اجباری:*\n\n";

if(empty($channels)) {
                 $list .= "(هیچ کانالی تنظیم نشده است)";
} else {

foreach($channels as $i => $chan) {
                     $num = $i + 1;
                     $list .= "$num. $chan\n";
}

}

             $keyboard = [
                 [['text' => '➕ افزودن کانال'], ['text' => '➖ حذف کانال']],
                 [['text' => '🔙 بازگشت به مدیریت']]
             ];
             sendMessage($chat_id, "$list\n\n👇 یکی از گزینه‌های زیر را انتخاب کنید:", json_encode(['keyboard' => $keyboard, 'resize_keyboard' => true]));
             die;
}

         $msg = "لطفا مقدار جدید را وارد کنید:";

if($text == '🔒 کانال عضویت اجباری') $msg .= "\n(با @ شروع شود)";
         else $msg .= "\n(شناسه عددی)";
         sendMessage($chat_id, $msg, $admin_back_keyboard);
         die;
}

    $key = '';
    $label = '';
    $isNumeric = true;

switch($user->step) {
        case 'admin:edit_channel_purchase':
            $key = 'channel_purchase_log';
            $label = 'کانال خرید کاربران';
            break;
        case 'admin:edit_channel_order':
            $key = 'channel_new_order_log';
            $label = 'کانال سفارش جدید';
            break;
        case 'admin:edit_channel_reports':
            $key = 'channel_reports_log';
            $label = 'کانال گزارشات';
            break;
}


if($key) {
        $value = trim(convertPersianToEnglishNumbers($text));

if($isNumeric) {

if(!is_numeric($value)) {
                sendMessage($chat_id, "❌ لطفا یک شناسه عددی معتبر وارد کنید.", $admin_back_keyboard);
                die;
}

} else {

if(strpos($value, '@') !== 0) {
                sendMessage($chat_id, "❌ آیدی کانال باید با @ شروع شود.", $admin_back_keyboard);
                die;
}

}

        saveSetting($key, $value);
        sendMessage($chat_id, "✅ $label با موفقیت ذخیره شد:\n$value", $admin_channels_keyboard);
        setStep($chat_id, 'admin:channel_settings');
        die;
}

}


if(($user->is_owner || $user->is_admin) && strpos($data, 'del_force:') === 0) {
    $channelToDelete = substr($data, 10);
    $current = settings('channel_force_join');
    $channels = json_decode($current, true);

if(!is_array($channels)) $channels = $current ? [$current] : [];
    $key = array_search($channelToDelete, $channels);

if($key !== false) {
        unset($channels[$key]);
        $channels = array_values($channels); 
        saveSetting('channel_force_join', json_encode($channels));
        answerCallbackQuery($query_id, "✅ کانال $channelToDelete حذف شد.");
        $list = "📌 *لیست کانال‌های جوین اجباری:*\n\n";

if(empty($channels)) {
            $list .= "(هیچ کانالی تنظیم نشده است)";
} else {

foreach($channels as $i => $chan) {
                $num = $i + 1;
                $list .= "$num. $chan\n";
}

}

        $buttons = [];

foreach($channels as $chan) {
            $buttons[] = [['text' => "🗑 حذف $chan", 'callback_data' => "del_force:$chan"]];
}

        editMessage($chat_id, $message_id, "برای حذف روی کانال مورد نظر کلیک کنید:\n\n$list", json_encode(['inline_keyboard' => $buttons]));
} else {
        answerCallbackQuery($query_id, "❌ کانال یافت نشد.");
}

    die;
}

