<?php
ob_start();
$load = sys_getloadavg();
$telegram_ip_ranges = [
    ['lower' => '149.154.160.0', 'upper' => '149.154.175.255'],
    ['lower' => '91.108.4.0',    'upper' => '91.108.7.255'],
];
$ip_dec = (float) sprintf("%u", ip2long($_SERVER['REMOTE_ADDR']));
$ok = false;
foreach ($telegram_ip_ranges as $telegram_ip_range) if (!$ok) {
    $lower_dec = (float) sprintf("%u", ip2long($telegram_ip_range['lower']));
    $upper_dec = (float) sprintf("%u", ip2long($telegram_ip_range['upper']));
    if ($ip_dec >= $lower_dec and $ip_dec <= $upper_dec) $ok = true;
}
if (!$ok) exit(header("location: https://BoFile.ir"));
error_reporting(0);
include_once "config.php";
include("../../FileOriginal/WpfAdm29r8JqjrnAebV.php");
define('API_TOKEN', $token);
$db = mysqli_connect('localhost', $databaseUser, $databasePass, $databaseName);
date_default_timezone_set('Asia/Tehran');
$date = date('Y/m/d | H:i:s');
#==================================================# functions #==================================================#
function BoFile($method, $datas = [])
{
    $url = "https://api.telegram.org/bot" . API_TOKEN . "/" . $method;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $datas);
    $res = curl_exec($ch);
    if (curl_error($ch)) {
        var_dump(curl_error($ch));
    } else {
        return json_decode($res);
    }
}
#==================================================#
function sendMessage($chat_id, $text, $parse_mode = '', $keyboard = '', $message_id = '')
{
    return BoFile('sendMessage', [
        'chat_id' => $chat_id,
        'text' => $text,
        'parse_mode' => $parse_mode,
        'disable_web_page_preview' => true,
        'reply_markup' => $keyboard,
        'reply_to_message_id' => $message_id
    ]);
}
#==================================================#
function editMessageText($chat_id, $message_id, $text, $parse_mode = null, $keyboard = null)
{
    BoFile('editMessageText', [
        'chat_id' => $chat_id,
        'message_id' => $message_id,
        'text' => $text,
        'parse_mode' => $parse_mode,
        'reply_markup' => $keyboard,
        'disable_web_page_preview' => true,

    ]);
}
function editMessageReplyMarkup($chat_id, $message_id, $keyboard)
{
    BoFile('editMessageReplyMarkup', [
        'chat_id' => $chat_id,
        'message_id' => $message_id,
        'reply_markup' => $keyboard,
    ]);
}
#==================================================#
function deleteMessage($chat_id, $message_id)
{
    BoFile('deleteMessage', [
        'chat_id' => $chat_id,
        'message_id' => $message_id,
    ]);
}
#==================================================#
function ForwardMessage($KojaShe, $AzKoja, $KodomMSG)
{
    return BoFile('ForwardMessage', [
        'chat_id' => $KojaShe,
        'from_chat_id' => $AzKoja,
        'message_id' => $KodomMSG,
    ]);
}
function answercallbackquery($callback_query_id, $text, $show_alert = true)
{
    BoFile('answercallbackquery', [
        'callback_query_id' => $callback_query_id,
        'text' => $text,
        'show_alert' => $show_alert
    ]);
}
#==================================================#
function getChat($chat_id)
{
    $result = BoFile('getChat', [
        'chat_id' => $chat_id,
    ]);
    $invite_link = $result->result->invite_link ?: BoFile('exportChatInviteLink', ['chat_id' => $chat_id])->result;
    $result->result->invite_link = $invite_link;
    return $result;
}
#==================================================#
function isJoin($from_id)
{
    global $db;
    $lockSQL = $db->query("SELECT `chat_id` FROM `lock`");
    if (mysqli_num_rows($lockSQL) >= 1) {
        while ($id = mysqli_fetch_assoc($lockSQL)) {
            $status = BoFile('getChatMember', ['chat_id' => $id['chat_id'], 'user_id' => $from_id])->result->status;
            $result[] = $status;
        }
        if (in_array("left", $result)) return false;
        else  return true;
    } else return true;
}
#==================================================#
function joinSend($from_id, $file = null)
{
    global $db;
    $lockSQL = $db->query("SELECT `chat_id`,`link` FROM `lock`");
    while ($row = mysqli_fetch_assoc($lockSQL)) {
        $lock = getChat($row['chat_id']);
        $link = $row['link'] ?: $lock->result->invite_link;
        $title = $row['name'] ?: $lock->result->title;
        if ($link) {
            if (BoFile('getChatMember', ['chat_id' => $row['chat_id'], 'user_id' => $from_id])->result->status == "left") {
                if ($link) {
                    $button[] = [['text' => "$title", 'url' => "$link"]];
                } else continue;
            } else continue;
        } else continue;
    }
    $button[] = [['text' => "عضو شدم | دانلود ✅", 'callback_data' => "join_" . $file]];
    $button = json_encode(['inline_keyboard' => $button]);
    $lock_text = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'lock_text'"))['columnOne'] ?: "❓ جهت دانلود فایل مورد نظر ابتدا وارد قفل اسپانسر شوید.\n\n💡 پس عضویت بر روی « عضو شدم » کلیک کنید";
    sendMessage($from_id, $lock_text, "html", $button);
}
#==================================================#
function random($max = 10)
{
    $textChar = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789';
    $textRandom = '';
    for ($i = 0; $i <= $max; $i++) $textRandom .= $textChar[rand(0, strlen($textChar))];
    return $textRandom;
}
#==================================================#
function convert($size)
{
    return round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . ['', 'K', 'M', 'G', 'T', 'P'][$i] . 'B';
}
#==================================================#
function doc($name)
{
    switch ($name) {
        case 'document':
            return "پرونده ( سند )";
            break;
        case 'video':
            return "ویدیو";
            break;
        case 'photo':
            return "عکس";
            break;
        case 'voice':
            return "ویس";
            break;
        case 'audio':
            return "موزیک";
            break;
        case 'sticker':
            return "استیکر";
            break;
        default:
            return "ناشناس ...";
            break;
    }
}
#=============================# SPAM #=============================#
function Spam($from_id)
{
    global $db;
    $spam_status = explode('|', mysqli_fetch_assoc($db->query("SELECT `spam` FROM `user` WHERE `from_id` = '$from_id' "))['spam']);
    $spam_time = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'spam_time'"))['type_id'] ?: 2;
    $spam_limit = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'spam_limit'"))['type_id'] ?: 7;
    if ($spam_status) {
        if (strpos($spam_status[0], "spam") !== false) {
            if ($spam_status[1] >= time()) exit(false);
            else $spam_status = [1, time() + 2];
        } elseif (time() < $spam_status[1]) {
            if ($spam_status[0] >= $spam_limit) {
                $time = time() + ($spam_time * 60);
                $db->query("UPDATE `user` SET `spam` = 'spam|$time' WHERE `from_id` = '$from_id'");
                sendMessage($from_id, "جهت جلوگیری از اسپم ربات شما به مدت " . $spam_time . " دقیقه از ربات ما بلاک  شدید.⏳");
                exit(false);
            } else $spam_status = [$spam_status[0] + 1, $spam_status[1]];
        } else $spam_status = [1, time() + 2];
        $db->query("UPDATE `user` SET `spam` = '$spam_status[0]|$spam_status[1]' WHERE `from_id` = '$from_id'");
    } else {
        $time = time() + 2;
        $db->query("UPDATE `user` SET `spam` = '0|$time' WHERE `from_id` = '$from_id'");
    }
}
#=============================# Send #=============================#
function send($from_id, $message_id, $id, $status)
{
    global $db, $usernamebot, $username, $text, $btn_back, $first_name, $btn_home;
    $fileData = $db->query("SELECT * FROM `file` WHERE `id` = '{$id}'");
    if (mysqli_num_rows($fileData)) {
        $file = mysqli_fetch_assoc($fileData);
        if ($file['password'] and $status == 'send') {
            sendMessage($from_id, "▪️ لطفا رمز فایل را ارسال کنید تا فایل برای شما ارسال شود :", "markdown", $btn_back, $message_id);
            $db->query("UPDATE `user` SET `step` = 'password', `getFile` = '$id' WHERE `from_id` = '$from_id'");
            exit(false);
        } else {
            $sctl = $db->query("SELECT `columnOne`, `columnTwo` FROM `settings` WHERE `type` = 'seen_link' OR `type` = 'seen_text' OR `type` = 'comment_text' OR `type` = 'comment_link'");
            $seen_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_link'"))['type_id'];
            $seen_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_text'"))['columnOne'] ?: "▪️ لطفا برای دریافت فایل به کانال زیر رفته و 10 پست اخر آن را مشاهده و سپس دکمه ( ✅مشاهده کردم ) را بزنید  \n\n⚠️ توجه کنید که سین پست ها باید به ارامی باشد تا ربات سین شما را دریافت کند.";
            $comment_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_link'"))['type_id'];
            $comment_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_text'"))['columnOne'] ?: "▪️ لطفا برای دریافت فایل به کانال زیر رفته و 5 تا کامنت زیر پست اخر آن بزارید و سپس دکمه ( ✅ کامنت گذاشتم ) را بزنید";
            if ($seen_link and $status != 'seen') {
                $seen_time = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'seen_time'"))['type_id'] ?: "10";
                sendMessage($from_id, $seen_text, null, json_encode(['inline_keyboard' => [[['text' => '👁 مشاهده پست ها', 'url' => $seen_link]], [['text' => '✅ مشاهده کردم', 'callback_data' => 'seenDone_' . $id . '_' . (time() + $seen_time)]]]]));
            } elseif ($comment_link and $status != 'comment') sendMessage($from_id, $comment_text, null, json_encode(['inline_keyboard' => [[['text' => '💬 گذاشتن کامنت', 'url' => $comment_link]], [['text' => '✅ کامنت گذاشتم', 'callback_data' => 'commentDone_' . $id . '_' . (time() + 5)]]]]));
            else {
                if ($status == 'seen' or $status == 'comment') deleteMessage($from_id, $message_id);
                $fileData = $db->query("SELECT * FROM `file` WHERE `id` = '{$id}'");
                $file = mysqli_fetch_assoc($fileData);
                if (in_array($status, ['seen', 'comment', 'send']) or ($text == $file['password'] and $status == 'pass')) {
                    $fileData = $db->query("SELECT * FROM `file` WHERE `id` = '{$id}'");
                    $sleep = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'del'"))['type_id'] * 60;

                    $caption_set = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnTwo'];
                    $show_like = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_like'"))['type_id'];
                    $show_seen = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_seen'"))['type_id'];
                    while ($file = mysqli_fetch_assoc($fileData)) {
                        $likes = number_format(mysqli_num_rows($db->query("SELECT * FROM `likes` WHERE `file_id` = '{$file['id']}'")));
                        $downloads = number_format($file['downloads'] + 1);
                        $caption_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnOne'];
                        if ($caption_set == "AllFiles") $caption = $caption_sql;
                        elseif ($caption_set == "noAllFiles") $caption = $file['caption'] ?: $caption_sql;
                        elseif (!$caption_set) $caption = $file['caption'];
                        $btn = ['inline_keyboard' => []];
                        if ($show_seen == 'active') $btn['inline_keyboard'][] = [['text' => 'تعداد دانلود : ' . $downloads, 'callback_data' => 'show']];
                        if ($show_like == 'active') $btn['inline_keyboard'][] = [['text' => '❤️ ' . $likes, 'callback_data' => 'like_' . $file['id']]];
                        $post_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'post_ads'"))['columnOne'];
                        if ($post_ads) {
                            $btns = explode("\n", "$post_ads");
                            for ($i = 0; $i < count($btns); $i += 2) $btn['inline_keyboard'][] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
                        }
                        if(file_get_contents("query.txt") != "on"){
                        $spoiler_status = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'spoiler'"))['type_id'] ?: "inactive";
                        $params = [
                            'chat_id' => $from_id,
                            $file['type'] => $file['file_id'],
                            'caption' => "{$caption}",
                            'parse_mode' => "html",
                            'reply_markup' => json_encode($btn)
                        ];
                        
                        // اگر اسپویلر فعال باشد و نوع فایل ویدیو باشد، پارامتر has_spoiler را اضافه می‌کنیم
                        if ($spoiler_status == 'active' && ($file['type'] == 'video' || $file['type'] == 'photo')) {
                            $params['has_spoiler'] = true;
                        }
                        
                        $msgId = BoFile("send{$file['type']}", $params)->result->message_id;
                        $timeDel = time() + $sleep;
                        if ($sleep > 0) $db->query("INSERT INTO `del` (`id`, `from_id`, `message_id`, `timeDel`) VALUES ('$id', '$from_id', '$msgId', '$timeDel')");
                        }else{
$msgId = BoFile('sendMessage',[
'chat_id'=>$from_id,
'text'=>"✅ برای دریافت فایل بر روی دکمه زیر کلیک کنید",
'reply_markup'=>json_encode([
'inline_keyboard'=>[
[['text'=>'دانلود', 'switch_inline_query_current_chat'=> "down_$id"]]
],
])
])->result->message_id;
                        }
                    }
                    $db->query("UPDATE `file` SET `downloads` = `downloads`+1 WHERE `id` = '$id'");
                    $db->query("UPDATE `user` SET `step` = 'none', `downloads` = `downloads`+1 WHERE `from_id` = '$from_id'");
                    if ($sleep > 0) {
                        $msgId = sendMessage($from_id, "⚠️ توجه کنید که بعد از $sleep ثانیه حذف خواهد شد\nلطفا فایل (های) ارسالی را به پیوی خود بفرستید و انجا مشاهده کنید")->result->message_id;
                        $db->query("INSERT INTO `del` (`id`, `from_id`, `message_id`, `timeDel`) VALUES ('$id', '$from_id', '$msgId', '$timeDel')");
                    }
                    $adsJSON = json_decode(file_get_contents('res/sets.json'), true)['ads'];
                    if ($adsJSON) foreach ($adsJSON as $ads) ForwardMessage($from_id, $ads['user_id'], $ads['message_id']);
                } else {
                    sendMessage($from_id, "▪️ پسورد اشتباه است , لطفا پسورد صحیح را ارسال کنید :\n🔸 در صورت نیاز به منوی اصلی روی /start کلیک کنید ... !", "markdown", $btn_back, $message_id);
                    exit(false);
                }
            }
        }
    } else {
        $start_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_text'"))['columnOne'] ?: "👤 سلام $first_name\n🤖 به ربات آپلودک خوش امدید!\n\n🏷 اپلود رایگان و دائم فایل ها بدون هیچ محدودیت زمانی !\n\n🚦 شما میتوانید ( عکس , فیلم , گیف , استیکر و ... ) در ربات اپلود کنید همراه با نمایش تعداد دانلود های فایل شما ... !\n\n▪️ شما میتوانید تا سقف یک گیگابایت (2GB) فایل اپلود کنید و لینک فایل خودتون رو دریافت کنید و برای دوستان خود ارسال کنید :\n\n🔐 دقت کنید که میتوانید برای لینک فایل های خودتون رمز بگزارید تا هرکسی نتواند فایلتون رو دانلود کنه , برای دسترسی به فایل وقتی که کاربر با لینک دانلود وارد میشود ربات از او رمز رو درخواست میکند در صورت صحیح بودن رمزی که شما برای فایلتون انتخاب کردید فایل برایش ارسال میشود ... !\n\n📤 همین الان یه فایل بفرس تا آپلود بشه و لذتشو ببر !\n\n🤖 @$usernamebot";
        $start_text = str_replace(['#id#', '#name#', '#username#'], [$from_id, $first_name, "@$username"], $start_text);
        sendMessage($from_id, $start_text, 'html', $btn_home, $message_id);
        $start_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_ads'"));
        $btns = explode("\n", $start_ads['columnOne']);
        for ($i = 0; $i < count($btns); $i += 2) $button[] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
        if ($start_ads['columnOne'] or $start_ads['columnTwo']) sendMessage($from_id, $start_ads['columnTwo'] ?: ".", 'html', json_encode(['inline_keyboard' => $button]));
    }
}

#==================================================# updates #==================================================#
$update = json_decode(file_get_contents('php://input'));

$message = $update->message;
@$chat_id = $update->message->chat->id ?? $update->callback_query->message->chat->id;
@$from_id = $update->message->from->id ?? $update->callback_query->from->id;
@$text = $update->message->text ?? $update->channel_post->text;
@$first_name = $update->message->from->first_name ?? $update->callback_query->from->first_name;
@$last_name = $update->message->from->last_name ?? $update->callback_query->from->last_name;
@$username = $update->message->from->username ?? $update->callback_query->from->username ?? 'BoFile';
@$type = $update->message->chat->type ?? $update->callback_query->message->chat->type ?? $update->channel_post->chat->type;
@$message_id = $update->message->message_id ?? $update->callback_query->message->message_id;
@$reply_message_id = $update->message->reply_to_message->message_id ?? $update->callback_query->message->reply_to_message->message_id;
@$reply_from_id = $update->message->reply_to_message->chat->id ?? $update->callback_query->message->reply_to_message->chat->id;

@$data = $update->callback_query->data;
@$callback_query_text = $update->callback_query->message->text;

@$gap_id = $update->message->chat->id ?? $update->callback_query->message->chat->id;
@$channel_id = $update->channel_post->chat->id;
@$channel_message_id = $update->channel_post->message_id;
@$callback_query_id = $update->callback_query->id;
@$forward_from_chat_id = $update->message->forward_from_chat->id;
@$forward_from_chat_title = $update->message->forward_from_chat->title;
@$forward_from_chat_type = $update->message->forward_from_chat->type;
@$forward_from_chat_username = $update->message->forward_from_chat->username;

@$profile =  BoFile("getUserProfilePhotos", ['user_id' => $from_id])->result->photos[0][0]->file_id;

@$botInfo = BoFile('getMe')->result;
@$usernamebot = $botInfo->username;
@$first_namebot = $botInfo->first_name;
@$time = time();
#================================================== get data
$db->query("SET NAMES 'utf8'");
$db->set_charset('utf8mb4');

$user_sql = $db->query("SELECT * FROM `user` WHERE `from_id` = '$from_id' LIMIT 1");
$user = mysqli_fetch_assoc($user_sql);
$step = $user['step'];

$admin_sql = $db->query("SELECT * FROM `settings` WHERE `type` = 'admin' AND `type_id` = '$from_id' LIMIT 1");
$admins_sql = $db->query("SELECT `type_id`,`columnOne` FROM `settings` WHERE `type` = 'admin'");
#================================================== buttons ==================================================#
switch (mysqli_num_rows($admin_sql)) {
    case 1:
        $btn_home = json_encode([
            'keyboard' => [
                [['text' => "📥 آپلود فایل گروهی"]],
                [['text' => "📂 تاریخچه اپلود"], ['text' => "🎫 حساب کاربری"]],
                [['text' => "🔐 تنظیم پسورد"], ['text' => "🗑 حذف فایل"]],
                [['text' => "🗂 کد پیگیری فایل"]],
                [['text' => "👤 مدیریت"]]
            ], 'resize_keyboard' => true
        ]);
        break;

    default:
        // دریافت پوشه‌های اصلی برای کاربران عادی
        $userFoldersSQL = $db->query("SELECT * FROM `folders` WHERE `parent_id` IS NULL ORDER BY `created_at` DESC LIMIT 10");
        $userButtons = [];
        
        $total_folders = mysqli_num_rows($userFoldersSQL);
        if ($total_folders > 0) {
            $buttons_per_row = 2;
            $folder_count = 0;
            $current_row = [];
            
                    while ($row = mysqli_fetch_assoc($userFoldersSQL)) {
            $current_row[] = ['text' => "{$row['name']}"];
            $folder_count++;
                
                if (count($current_row) == $buttons_per_row || $folder_count == $total_folders) {
                    $userButtons[] = $current_row;
                    $current_row = [];
                }
            }
        }
        
        $btn_home = json_encode([
            'keyboard' => $userButtons,
            'resize_keyboard' => true
        ]);
        break;
}
#=======================#
$btn_back = json_encode([
    'keyboard' => [
        [['text' => "🔙 بازگشت"]]
    ], 'resize_keyboard' => true
]);
#=======================#
$btn_end = json_encode([
    'keyboard' => [
        [['text' => "🗄 اتمام اپلود"]]
    ], 'resize_keyboard' => true
]);
#=======================#
$remove = json_encode([
    'remove_keyboard' => [], 'remove_keyboard' => true
]);
#================================================== ("^") ==================================================#
if (mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'bot_status'"))['type_id'] == 'off' and mysqli_num_rows($admin_sql) == 0) {
    sendMessage($from_id, '⛔️ ربات خاموش است لطفا بعدا تلاش کنید.', null, $remove);
    exit(false);
} elseif ($user['block'] == '1' and mysqli_num_rows($admin_sql) == 0) {
    sendMessage($from_id, '⛔️ شما از ربات بلاک شدید.', null, $remove);
    exit(false);
}
$Iquery = $update->inline_query->query;
$IqId = $update->inline_query->id;
if(strpos($Iquery, "down_") !== false){
$fileid = str_replace("down_","",$Iquery);
$fileData = $db->query("SELECT * FROM `file` WHERE `id` = '{$fileid}'");
$file = mysqli_fetch_assoc($fileData);
BoFile('answerInlineQuery', [
'inline_query_id'=>$IqId,
'results'=>json_encode([[
'type'=>$file['type'],
'title'=>"برای دانلود کلیک کنید",
'id'=>base64_encode(rand()),
$file['type'].'_file_id'=>$file['file_id'],
'thumb_url'=>'https://tabnakjavan.com/files/fa/news/1398/7/12/62611_768.jpg',
] 
]),
]);
exit;
}
#======================= add channel  =======================#        
if (preg_match('/^\/lock_(.*)/', $text, $match)) {
    if ($type == "channel") {
        $lock_id = $channel_id;
        $lock_message_id = $channel_message_id;
    } elseif ($type == "group" or $type == "supergroup") {
        $lock_id = $gap_id;
        $lock_message_id = $message_id;
    }
    $new_lock_sql = mysqli_fetch_assoc($db->query("SELECT `columnOne`, `columnTwo` FROM `settings` WHERE `type` = 'lock' AND `columnOne` = '{$match[1]}'"));
    if ($new_lock_sql) {
        if ($type == "channel" or $type == "group" or $type == "supergroup") {
            if (mysqli_num_rows($db->query("SELECT `chat_id` FROM `lock` WHERE `chat_id` = '$lock_id'")) == 0) {
                deleteMessage($lock_id, $lock_message_id);
                $lock_data = getChat($lock_id)->result;
                $lock_title = $lock_data->title;
                $lock_username = $lock_data->username ?? " ندارد";
                $lock_link = $lock_data->invite_link;
                $admins_sql = $db->query("SELECT * FROM `settings` WHERE `type` = 'admin'");
                sendMessage($new_lock_sql['columnTwo'], "✅ قفل با موفقیت اضافه شد. \n\n📑 مشخصات:\n❔ نوع قفل : {$type}\n✏️ نام : {$lock_title}\n👤 نام کاربری : @{$lock_username}\n🔗 لینک : {$lock_link}\n🆔 ایدی عددی قفل : {$lock_id}");
                $db->query("INSERT INTO `lock`(`chat_id`, `create_at`) VALUES ('$lock_id', '$time')");
                $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
                if ($owner != $new_lock_sql['columnTwo']) sendMessage($owner, "✅ یک قفل جدید به نام ( $lock_title ) تنظیم شد.\n\n🧑🏻‍💻 توسط : {$new_lock_sql['columnTwo']} - " . getChat($new_lock_sql['columnTwo'])->result->first_name);
            } else sendMessage($new_lock_sql['columnTwo'], "❌ کانال از قبل اضافه شده بود.");
        } else sendMessage($from_id, "❌ این دستور تنها در کانال یا گروه امکان پذیر است");
    }
}
#======================= update database database =======================#
if (mysqli_num_rows($user_sql) == 0 & $type == "private") $db->query("INSERT INTO `user`(`from_id`, `step`, `downloads`, `getFile`, `update_at`, `create_at`) VALUES ('$from_id', '0', '0', '0', '$time', '$time')");
$db->query("UPDATE `user` SET `update_at` = '$time', `create_at` = '$time' WHERE `from_id` = '$from_id'");
Spam($from_id);
#======================= start =======================#
if (preg_match('/^\/start get_(.*)/', $text, $match) or preg_match('/^\/get_(.*)/', $text, $match)) {
    $id = $match[1];
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        send($from_id, $message_id, $id, 'send');
    } else joinSend($from_id, $id);
}
#======================= Seen Done =======================#
elseif (preg_match('/^seenDone_(.*)_(.*)/', $data, $match)) {
    if ($match[2] < time()) {
        send($from_id, $message_id, $match[1], 'seen');
    } else answercallbackquery($callback_query_id, "❌ لطفا پست ها را به ارامی مشاهده کنید");
}
#======================= Comment Done =======================#
elseif (preg_match('/^commentDone_(.*)_(.*)/', $data, $match)) {
    if ($match[2] < time()) send($from_id, $message_id, $match[1], 'comment');
    else answercallbackquery($callback_query_id, "❌ لطفا کامنت ها را به درستی بگذارید");
}
#======================= like =======================#
elseif (preg_match('/^like_(.*)/', $data, $match)) {
    $show_like = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'show_like'"))['type_id'];
    $show_seen = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'show_seen'"))['type_id'];
    $like = $db->query("SELECT * FROM `likes` WHERE `user_id` = '$from_id' AND `file_id` = '{$match[1]}' LIMIT 1");
    $likes = number_format(mysqli_num_rows($db->query("SELECT * FROM `likes` WHERE `file_id` = '{$match[1]}'")) + 1);
    if (mysqli_num_rows($like) == 0) {
        $file = mysqli_fetch_assoc($db->query("SELECT * FROM `file` WHERE `id` = '{$match[1]}'"));
        $type = doc($file['type']);
        $db->query("INSERT INTO `likes` (`file_id`, `user_id`) VALUES ('{$match[1]}', '$from_id')");
        answercallbackquery($callback_query_id, "❤️ " . $type . " مورد نظر با موفقیت لایک شد.");
        $btn = ['inline_keyboard' => []];
        if ($show_seen == 'active') $btn['inline_keyboard'][] = [['text' => 'تعداد دانلود : ' . number_format($file['downloads']), 'callback_data' => 'show']];
        if ($show_like == 'active') $btn['inline_keyboard'][] = [['text' => '❤️ ' . $likes, 'callback_data' => 'like_' . $file['id']]];
        $post_ads = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'post_ads'"))['columnOne'];
        if ($post_ads) {
            $btns = explode("\n", "$post_ads");
            for ($i = 0; $i < count($btns); $i += 2) $btn['inline_keyboard'][] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
        }
        editMessageReplyMarkup($from_id, $message_id, json_encode($btn));
    } else answercallbackquery($callback_query_id, "❌ پست قبلا لایک شده است.");
}
#======================= show =======================#
elseif ($data == 'show') answercallbackquery($callback_query_id, "⚠️ این دکمه جعت نمایش تعداد دانلود پست هاست");
#======================= join =======================#
elseif (preg_match('/^join_(.*)/', $data, $match)) {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        deleteMessage($from_id, $message_id);
        if ($match[1]) send($from_id, null, $match[1], 'send');
        else {
            $start_text = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'start_text'"))['columnOne'] ?? "👤 سلام $first_name\n🤖 به ربات آپلودک خوش امدید!\n\n🏷 اپلود رایگان و دائم فایل ها بدون هیچ محدودیت زمانی !\n\n🚦 شما میتوانید ( عکس , فیلم , گیف , استیکر و ... ) در ربات اپلود کنید همراه با نمایش تعداد دانلود های فایل شما ... !\n\n▪️ شما میتوانید تا سقف یک گیگابایت (2GB) فایل اپلود کنید و لینک فایل خودتون رو دریافت کنید و برای دوستان خود ارسال کنید :\n\n🔐 دقت کنید که میتوانید برای لینک فایل های خودتون رمز بگزارید تا هرکسی نتواند فایلتون رو دانلود کنه , برای دسترسی به فایل وقتی که کاربر با لینک دانلود وارد میشود ربات از او رمز رو درخواست میکند در صورت صحیح بودن رمزی که شما برای فایلتون انتخاب کردید فایل برایش ارسال میشود ... !\n\n📤 همین الان یه فایل بفرس تا آپلود بشه و لذتشو ببر !\n\n🤖 @$usernamebot";
            $start_text = str_replace(['#id#', '#name#', '#username#'], [$from_id, $first_name, "@$username"], $start_text);
            sendMessage($from_id, $start_text, 'html');
            $start_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_ads'"));
            $btns = explode("\n", $start_ads['columnOne']);
            for ($i = 0; $i < count($btns); $i += 2) $button[] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
            if ($start_ads['columnOne'] or $start_ads['columnTwo']) sendMessage($from_id, $start_ads['columnTwo'] ?? ".", 'html', json_encode(['inline_keyboard' => $button]));
        }
    } else {
        answercallbackquery($callback_query_id, "❌ شما هنوز عضو کانال های ربات نیستید");
        $lockSQL = $db->query("SELECT `chat_id`,`link` FROM `lock`");
        while ($row = mysqli_fetch_assoc($lockSQL)) {
            $lock = getChat($row['chat_id']);
            $link = $row['link'] ?: $lock->result->invite_link;
            $title = $lock->result->title;
            if ($link) {
                if (BoFile('getChatMember', ['chat_id' => $row['chat_id'], 'user_id' => $from_id])->result->status == "left") {
                    if ($link) $button[] = [['text' => "$title", 'url' => "$link"]];
                } else continue;
            } else continue;
        }
        $button[] = [['text' => "عضو شدم | دانلود ✅", 'callback_data' => "join_" . $match[1]]];
        $button = json_encode(['inline_keyboard' => $button]);
        editMessageText($from_id, $message_id, "❓ برای استفاده از ربات و اپلود و دریافت فایل عضو کانال های ما شوید.\n\n💡 پس عضویت بر روی « عضو شدم » کلیک کنید", null, $button);
    }
}
mkdir("Data");
#======================= start =======================#
if ($text == '/start' or $text == "🔙") {
    $start_text = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'start_text'"))['columnOne'] ?: "👤 سلام $first_name\n🤖 به ربات آپلودک خوش امدید!\n\n🏷 اپلود رایگان و دائم فایل ها بدون هیچ محدودیت زمانی !\n\n🚦 شما میتوانید ( عکس , فیلم , گیف , استیکر و ... ) در ربات اپلود کنید همراه با نمایش تعداد دانلود های فایل شما ... !\n\n▪️ شما میتوانید تا سقف یک گیگابایت (2GB) فایل اپلود کنید و لینک فایل خودتون رو دریافت کنید و برای دوستان خود ارسال کنید :\n\n🔐 دقت کنید که میتوانید برای لینک فایل های خودتون رمز بگزارید تا هرکسی نتواند فایلتون رو دانلود کنه , برای دسترسی به فایل وقتی که کاربر با لینک دانلود وارد میشود ربات از او رمز رو درخواست میکند در صورت صحیح بودن رمزی که شما برای فایلتون انتخاب کردید فایل برایش ارسال میشود ... !\n\n📤 همین الان یه فایل بفرس تا آپلود بشه و لذتشو ببر !\n\n🤖 @$usernamebot";
    $start_text = str_replace(['#id#', '#name#', '#username#'], [$from_id, $first_name, "@$username"], $start_text);
    sendMessage($from_id, $start_text, 'html', $btn_home, $message_id);
    $start_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_ads'"));
    $btns = explode("\n", $start_ads['columnOne']);
    for ($i = 0; $i < count($btns); $i += 2) $button[] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
    if ($start_ads['columnOne'] or $start_ads['columnTwo']) sendMessage($from_id, $start_ads['columnTwo'] ?: ".", 'html', json_encode(['inline_keyboard' => $button]));
    $db->query("UPDATE `user` SET `step` = 'none', `getFile` = '' WHERE `from_id` = '$from_id' LIMIT 1");
}
#======================= ADMIN folder management =======================#
elseif ($text == "📁 پوشه سازی رسانه‌ها" && mysqli_num_rows($admin_sql) > 0) {
    // نمایش لیست پوشه‌های اصلی
    $foldersSQL = $db->query("SELECT * FROM `folders` WHERE `parent_id` IS NULL ORDER BY `created_at` DESC");
    $foldersText = "📁 مدیریت پوشه‌های رسانه‌ها\n\n";
    $button = [];
    
    if (mysqli_num_rows($foldersSQL) > 0) {
        $foldersText .= "📂 پوشه‌های موجود:\n";
        while ($row = mysqli_fetch_assoc($foldersSQL)) {
            $subFolderCount = mysqli_num_rows($db->query("SELECT * FROM `folders` WHERE `parent_id` = '{$row['id']}'"));
            $fileCount = mysqli_num_rows($db->query("SELECT * FROM `folder_files` WHERE `folder_id` = '{$row['id']}'"));
            $button[] = [['text' => "{$row['name']} ($subFolderCount زیرپوشه, $fileCount فایل)", 'callback_data' => "admin_view_folder_{$row['id']}"]];
        }
    } else {
        $foldersText .= "❌ هیچ پوشه‌ای وجود ندارد.";
    }
    
    $button[] = [['text' => '➕ افزودن پوشه جدید', 'callback_data' => 'add_folder_0']];
    $button[] = [['text' => '🔙 برگشت', 'callback_data' => 'panel']];
    
    sendMessage($from_id, $foldersText, null, json_encode(['inline_keyboard' => $button]), $message_id);
}
/* OLD CALLBACK HANDLERS - DISABLED SINCE USING KEYBOARD BUTTONS NOW
#======================= user folder navigation =======================#
elseif (preg_match('/^user_folder_(.*)/', $data, $match)) {
    if (isJoin($from_id)) {
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '$folder_id'"));
        
        if ($folder) {
            // دریافت مسیر پوشه
            $breadcrumb = [];
            $current_folder = $folder;
            while ($current_folder) {
                array_unshift($breadcrumb, $current_folder['name']);
                if ($current_folder['parent_id']) {
                    $current_folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '{$current_folder['parent_id']}'"));
                } else {
                    break;
                }
            }
            $path = "📁 " . implode(" > ", $breadcrumb);
            
            $folderText = "$path\n\n";
            $button = [];
            
            // نمایش زیرپوشه‌ها
            $subFoldersSQL = $db->query("SELECT * FROM `folders` WHERE `parent_id` = '$folder_id' ORDER BY `created_at` DESC");
            if (mysqli_num_rows($subFoldersSQL) > 0) {
                while ($row = mysqli_fetch_assoc($subFoldersSQL)) {
                                    $button[] = [['text' => "{$row['name']}", 'callback_data' => "user_folder_{$row['id']}"]];
            }
        }
        
        // نمایش فایل‌ها
        $filesSQL = $db->query("SELECT ff.*, f.id as file_code, f.type, f.caption FROM `folder_files` ff JOIN `file` f ON ff.file_id = f.id WHERE ff.folder_id = '$folder_id' ORDER BY ff.created_at DESC");
            if (mysqli_num_rows($filesSQL) > 0) {
                while ($row = mysqli_fetch_assoc($filesSQL)) {
                    $fileType = doc($row['type']);
                    $caption = $row['caption'] ? mb_substr($row['caption'], 0, 30) . "..." : $fileType;
                    $button[] = [['text' => "📄 $caption", 'callback_data' => "get_file_{$row['file_code']}"]];
                }
            }
            
            if (mysqli_num_rows($subFoldersSQL) == 0 && mysqli_num_rows($filesSQL) == 0) {
                $folderText .= "❌ این پوشه خالی است.";
            }
            
            // دکمه برگشت
            if ($folder['parent_id']) {
                $button[] = [['text' => '🔙 برگشت', 'callback_data' => "user_folder_{$folder['parent_id']}"]];
            } else {
                $button[] = [['text' => '🔙 برگشت', 'callback_data' => 'back_to_main']];
            }
            $button[] = [['text' => '🏠 برگشت به منوی اصلی', 'callback_data' => 'back_to_main']];
            
            editMessageText($from_id, $message_id, $folderText, null, json_encode(['inline_keyboard' => $button]));
        } else {
            answercallbackquery($callback_query_id, "❌ پوشه یافت نشد!");
        }
    } else {
        answercallbackquery($callback_query_id, "❌ ابتدا در کانال‌های ربات عضو شوید!");
    }
}
#======================= get file from folder =======================#
elseif (preg_match('/^get_file_(.*)/', $data, $match)) {
    if (isJoin($from_id)) {
        $file_id = $match[1];
        deleteMessage($from_id, $message_id);
        send($from_id, null, $file_id, 'send');
    } else {
        answercallbackquery($callback_query_id, "❌ ابتدا در کانال‌های ربات عضو شوید!");
    }
}
#======================= back to main menu =======================#
elseif ($data == 'back_to_main') {
    deleteMessage($from_id, $message_id);
    
    $start_text = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'start_text'"))['columnOne'] ?: "👤 سلام $first_name\n🤖 به ربات آپلودک خوش امدید!\n\n🏷 اپلود رایگان و دائم فایل ها بدون هیچ محدودیت زمانی !\n\n🚦 شما میتوانید ( عکس , فیلم , گیف , استیکر و ... ) در ربات اپلود کنید همراه با نمایش تعداد دانلود های فایل شما ... !\n\n▪️ شما میتوانید تا سقف یک گیگابایت (2GB) فایل اپلود کنید و لینک فایل خودتون رو دریافت کنید و برای دوستان خود ارسال کنید :\n\n🔐 دقت کنید که میتوانید برای لینک فایل های خودتون رمز بگزارید تا هرکسی نتواند فایلتون رو دانلود کنه , برای دسترسی به فایل وقتی که کاربر با لینک دانلود وارد میشود ربات از او رمز رو درخواست میکند در صورت صحیح بودن رمزی که شما برای فایلتون انتخاب کردید فایل برایش ارسال میشود ... !\n\n📤 همین الان یه فایل بفرس تا آپلود بشه و لذتشو ببر !\n\n🤖 @$usernamebot";
    $start_text = str_replace(['#id#', '#name#', '#username#'], [$from_id, $first_name, "@$username"], $start_text);
    sendMessage($from_id, $start_text, 'html', $btn_home);
    
    $start_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_ads'"));
    $btns = explode("\n", $start_ads['columnOne']);
    for ($i = 0; $i < count($btns); $i += 2) $button[] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
    if ($start_ads['columnOne'] or $start_ads['columnTwo']) sendMessage($from_id, $start_ads['columnTwo'] ?: ".", 'html', json_encode(['inline_keyboard' => $button]));
}
*/
#======================= back to main menu from folder =======================#
elseif ($text == '🏠 برگشت به منوی اصلی' || $text == '🏠 منوی اصلی') {
    sendMessage($from_id, "🌼 به منوی اصلی ربات برگشتیم \n\n🎉 برای استفاده از ربات از دکمه های زیر استفاده کنید", 'markdown', $btn_home, $message_id);
    $db->query("UPDATE `user` SET `step` = 'none', `getFile` = '' WHERE `from_id` = '$from_id' LIMIT 1");
    exit(false);
}
#======================= folder navigation for users =======================#
elseif (mysqli_num_rows($admin_sql) == 0 && $text != "🔙 بازگشت" && $text != "🏠 منوی اصلی" && $text != "🏠 برگشت به منوی اصلی" && !preg_match('/^🔙 برگشت به (.+)/', $text) && !preg_match('/^\//', $text)) {
    // فقط برای کاربران عادی - بررسی نام پوشه‌ها
    $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `name` = '$text'"));
    if ($folder && isJoin($from_id)) {
            // بررسی زیرپوشه‌ها
            $subFoldersSQL = $db->query("SELECT * FROM `folders` WHERE `parent_id` = '{$folder['id']}' ORDER BY `created_at` DESC");
            $subFolderCount = mysqli_num_rows($subFoldersSQL);
            
            // بررسی فایل‌ها
            $filesSQL = $db->query("SELECT ff.*, f.id as file_code, f.type, f.caption FROM `folder_files` ff JOIN `file` f ON ff.file_id = f.id WHERE ff.folder_id = '{$folder['id']}' ORDER BY ff.created_at DESC");
            $fileCount = mysqli_num_rows($filesSQL);
            
            // اگر فایل دارد، همه فایل‌ها را ارسال کن
            if ($fileCount > 0) {
                $sent_files = [];
                while ($row = mysqli_fetch_assoc($filesSQL)) {
                    $file_id = $row['file_code'];
                    
                    // بررسی تکرار (در صورت وجود تکرار در دیتابیس)
                    if (in_array($file_id, $sent_files)) {
                        continue;
                    }
                    $sent_files[] = $file_id;
                    
                    // ارسال فایل (حتی اگر رمزدار باشه)
                    send($from_id, null, $file_id, 'send');
                    usleep(500000); // تاخیر نیم ثانیه بین ارسال فایل‌ها
                }
            }
            // اگر زیرپوشه دارد، زیرپوشه‌ها را نمایش بده
            elseif ($subFolderCount > 0) {
                // دریافت مسیر پوشه
                $breadcrumb = [];
                $current_folder = $folder;
                while ($current_folder) {
                    array_unshift($breadcrumb, $current_folder['name']);
                    if ($current_folder['parent_id']) {
                        $current_folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '{$current_folder['parent_id']}'"));
                    } else {
                        break;
                    }
                }
                $path = "📁 " . implode(" > ", $breadcrumb);
                
                $folderText = "$path\n\n";
                $keyboardButtons = [];
                
                // نمایش زیرپوشه‌ها
                $buttons_per_row = 2;
                $folder_count = 0;
                $current_row = [];
                
                mysqli_data_seek($subFoldersSQL, 0);
                while ($row = mysqli_fetch_assoc($subFoldersSQL)) {
                    $current_row[] = ['text' => "{$row['name']}"];
                    $folder_count++;
                    
                    if (count($current_row) == $buttons_per_row || $folder_count == $subFolderCount) {
                        $keyboardButtons[] = $current_row;
                        $current_row = [];
                    }
                }
                
                // دکمه برگشت
                if ($folder['parent_id']) {
                    $parent_folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '{$folder['parent_id']}'"));
                    $keyboardButtons[] = [['text' => "🔙 برگشت به {$parent_folder['name']}"]];
                } else {
                    $keyboardButtons[] = [['text' => '🏠 منوی اصلی']];
                }
                
                $keyboard = json_encode([
                    'keyboard' => $keyboardButtons,
                    'resize_keyboard' => true
                ]);
                
                sendMessage($from_id, $folderText, null, $keyboard, $message_id);
            }
            // پوشه خالی
            else {
                sendMessage($from_id, "{$folder['name']}\n❌ این پوشه خالی است.", null, $btn_home, $message_id);
            }
    } else if (mysqli_num_rows($admin_sql) == 0) {
        joinSend($from_id);
    }
}
/* DISABLED - Files are now sent automatically when folder is accessed
#======================= file download from folder =======================#
elseif (preg_match('/^📄 (.+)/', $text, $match)) {
    if (isJoin($from_id)) {
        $file_caption = $match[1];
        // حذف "..." در انتهای کپشن در صورت وجود
        $file_caption = str_replace("...", "", $file_caption);
        
        // جستجوی فایل بر اساس کپشن
        $fileSQL = $db->query("SELECT * FROM `file` WHERE `caption` LIKE '%$file_caption%' LIMIT 1");
        if (mysqli_num_rows($fileSQL) > 0) {
            $file = mysqli_fetch_assoc($fileSQL);
            $file_id = $file['id'];
            
            // بررسی رمز فایل
            if ($file['password'] != null) {
                $db->query("UPDATE `user` SET `step` = 'password', `getFile` = '$file_id' WHERE `from_id` = '$from_id'");
                sendMessage($from_id, "🔐 این فایل رمز دار است \n🗝 رمز عبور فایل را وارد کنید :", null, $btn_back, $message_id);
            } else {
                // ارسال فایل بدون رمز
                include 'lib/sendFile.php';
            }
        } else {
            sendMessage($from_id, "❌ فایل یافت نشد!", null, $btn_home, $message_id);
        }
    } else {
        joinSend($from_id);
    }
}
*/
#======================= back to parent folder =======================#
elseif (preg_match('/^🔙 برگشت به (.+)/', $text, $match)) {
    if (isJoin($from_id)) {
        $parent_folder_name = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `name` = '$parent_folder_name'"));
        
        if ($folder) {
            // بررسی زیرپوشه‌ها
            $subFoldersSQL = $db->query("SELECT * FROM `folders` WHERE `parent_id` = '{$folder['id']}' ORDER BY `created_at` DESC");
            $subFolderCount = mysqli_num_rows($subFoldersSQL);
            
            // بررسی فایل‌ها
            $filesSQL = $db->query("SELECT ff.*, f.id as file_code, f.type, f.caption FROM `folder_files` ff JOIN `file` f ON ff.file_id = f.id WHERE ff.folder_id = '{$folder['id']}' ORDER BY ff.created_at DESC");
            $fileCount = mysqli_num_rows($filesSQL);
            
            // اگر فایل دارد، همه فایل‌ها را ارسال کن
            if ($fileCount > 0) {
                $sent_files = [];
                while ($row = mysqli_fetch_assoc($filesSQL)) {
                    $file_id = $row['file_code'];
                    
                    // بررسی تکرار (در صورت وجود تکرار در دیتابیس)
                    if (in_array($file_id, $sent_files)) {
                        continue;
                    }
                    $sent_files[] = $file_id;
                    
                    // ارسال فایل (حتی اگر رمزدار باشه)
                    send($from_id, null, $file_id, 'send');
                    usleep(500000); // تاخیر نیم ثانیه بین ارسال فایل‌ها
                }
            }
            // اگر زیرپوشه دارد، زیرپوشه‌ها را نمایش بده
            elseif ($subFolderCount > 0) {
                // دریافت مسیر پوشه
                $breadcrumb = [];
                $current_folder = $folder;
                while ($current_folder) {
                    array_unshift($breadcrumb, $current_folder['name']);
                    if ($current_folder['parent_id']) {
                        $current_folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '{$current_folder['parent_id']}'"));
                    } else {
                        break;
                    }
                }
                $path = "📁 " . implode(" > ", $breadcrumb);
                
                $folderText = "$path\n\n";
                $keyboardButtons = [];
                
                // نمایش زیرپوشه‌ها
                $buttons_per_row = 2;
                $folder_count = 0;
                $current_row = [];
                
                mysqli_data_seek($subFoldersSQL, 0);
                while ($row = mysqli_fetch_assoc($subFoldersSQL)) {
                    $current_row[] = ['text' => "{$row['name']}"];
                    $folder_count++;
                    
                    if (count($current_row) == $buttons_per_row || $folder_count == $subFolderCount) {
                        $keyboardButtons[] = $current_row;
                        $current_row = [];
                    }
                }
                
                // دکمه برگشت
                if ($folder['parent_id']) {
                    $parent_folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '{$folder['parent_id']}'"));
                    $keyboardButtons[] = [['text' => "🔙 برگشت به {$parent_folder['name']}"]];
                } else {
                    $keyboardButtons[] = [['text' => '🏠 منوی اصلی']];
                }
                
                $keyboard = json_encode([
                    'keyboard' => $keyboardButtons,
                    'resize_keyboard' => true
                ]);
                
                sendMessage($from_id, $folderText, null, $keyboard, $message_id);
            }
            // پوشه خالی
            else {
                sendMessage($from_id, "{$folder['name']}\n❌ این پوشه خالی است.", null, $btn_home, $message_id);
            }
        } else {
            sendMessage($from_id, "❌ پوشه یافت نشد!", null, $btn_home, $message_id);
        }
    } else {
        joinSend($from_id);
    }
}
#======================= back home =======================#
elseif ($text == '🔙 بازگشت') {
    sendMessage($from_id, "🌼 به منوی اصلی ربات برگشتیم \n\n🎉 برای استفاده از ربات از دکمه های زیر استفاده کنید", 'markdown', $btn_home, $message_id);
    $db->query("UPDATE `user` SET `step` = 'none', `getFile` = '' WHERE `from_id` = '$from_id' LIMIT 1");
    exit(false);
}
#======================= password =======================#
elseif ($step == 'password') {
    $id = $user['getFile'];
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        send($from_id, $message_id, $id, 'pass');
    } else joinSend($from_id, $id);
}
#======================= remove file =======================#
elseif ($text == "🗑 حذف فایل" and mysqli_num_rows($admin_sql) > 0) {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        sendMessage($from_id, "▪️لطفا شناسه فایل یا فایل های خود را به صورت زیر هم ارسال کنید :\n📍 توجه کنید که بعد از فرستادن شناسه , فایل همان لحظه پاک میشود پس لطفا الکی شناسه فایلتون رو ارسال نکنید و فقط در صورت نیاز استفاده بکنید از این بخش ... !", 'markdown', $btn_back, $message_id);
        $db->query("UPDATE `user` SET `step` = 'remove' WHERE `from_id` = '$from_id'");
    } else joinSend($from_id);
}
#=======================#
elseif ($step == 'remove' and mysqli_num_rows($admin_sql) > 0) {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $codes = explode("\n", $text);
        $codesError = '';
        foreach ($codes as $code) {
            $query = mysqli_fetch_assoc($db->query("SELECT * FROM `file` WHERE `user_id` = '{$from_id}' AND `id` = '{$code}'"));
            if ($query) {
                $db->query("UPDATE `user` SET `downloads` = `downloads` - 1, `step` = 'none'  WHERE `from_id` = '{$from_id}'");
                $db->query("DELETE FROM `file` WHERE `id` = '{$code}' and `user_id` = '{$from_id}'");
            } else $codesError .= "`" . $code . "` - ";
        }
        $sendText = "✔️ فایل ها با موفقیت حذف شد ... !";
        if ($codesError) $sendText .= "\n\n❌ به جز فایل های زیر :\n" . $codesError;
        sendMessage($from_id, $sendText, 'markdown', $btn_home, $message_id);
    } else joinSend($from_id);
}
#======================= chek file =======================#
elseif ($text == "🗂 کد پیگیری فایل") {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        sendMessage($from_id, "▪️لطفا شناسه فایل خود را ارسال کنید :", 'markdown', $btn_back, $message_id);
        $db->query("UPDATE `user` SET `step` = 'checkfile' WHERE `from_id` = '{$from_id}' LIMIT 1");
    } else joinSend($from_id);
}
#=======================#
elseif ($step == "checkfile") {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $queryE = $db->query("SELECT * FROM `file` WHERE `user_id` = '{$from_id}' AND `id` = '{$text}'");
        $query = mysqli_fetch_assoc($queryE);
        if ($query) {
            $likes = '- ❤️: <code>' . number_format(mysqli_num_rows($db->query("SELECT * FROM `likes` WHERE `file_id` = '{$text}'"))) . '</code>';
            $downloads = '📥: <code>' . number_format($query['downloads']) . '</code>';
            $show_like = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_like'"))['type_id'];
            $show_seen = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_seen'"))['type_id'];
            if ($show_seen == 'inactive') $downloads = '';
            if ($show_like == 'inactive') $likes = '';
            $file_size = convert($query['file_size']);
            $file = doc($query['type']);
            $time = $query['time'];
            $date = $query['date'];
            $caption = $query['caption'] ?: 'توضیحاتی وجود ندارد ... !';
            $password = $query['password'] ?: 'این فایل بدون رمز عبور است ... !';
            $count = mysqli_num_rows($queryE);
            if ($count = 1) sendMessage($from_id, "▪️ شناسه فایل شما : <code>$text</code>\n\n➖ بقیه اطلاعات فایل شما : \n\n💾  حجم فایل : <b>$file_size</b> \n▪️ نوع فایل : <b>$file</b>\n🔐 رمز فایل : <code>$password</code>\n$downloads $likes\n📝 توضیحات فایل : \n<code>$caption</code>\n🕓 تاریخ و زمان اپلود : <b>" . $date . " - " . $time . "</b>" . "\nلینک شتراک گذاری فایل:\n\n📥 https://t.me/" . $usernamebot . "?start=get_" . $query['id'] . "\n\n🤖 @$usernamebot", "html", $btn_home, $message_id);
            else sendMessage($from_id, "▪️ شناسه فایل های شما : <code>$text</code>\n\n➖ بقیه اطلاعات فایل های شما : \n\n🔐 رمز فایل : <code>$password</code>\n<code>$caption</code>\n$downloads $likes\n🕓 تاریخ و زمان اپلود : <b>" . $date . " - " . $time . "</b>" . "\nلینک شتراک گذاری فایل:\n\n📥 https://t.me/" . $usernamebot . "?start=get_" . $query['id'] . "\n\n🤖 @$usernamebot", "html", $btn_home, $message_id);
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '{$from_id}' LIMIT 1");
        } else sendMessage($from_id, "▪️ خطا , این فایل در دیتابیس موجود نمیباشد یا فایل مال شخص دیگری میباشد و  شما اجازه دسترسی به این فایل را ندارید ... !", "markdown", $btn_back, $message_id);
    } else joinSend($from_id);
}
#======================= edit Caption =======================#
elseif (preg_match('/^editCaption_(.*)/', $data, $match)) {
    $id = $match[1];
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $caption_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `file` WHERE `id` = '$id' LIMIT 1"))['caption'];
        sendMessage($from_id, "کپشن قبلی :\n\n <code>$caption_sql</code> \n\n▪️لطفا کپشن جدید را ارسال کنید :\n( تنها متن میتوانید ارسال کنید ; متن میتواند در قالب html نیز باشد )", 'html', $btn_back, $message_id);
        $db->query("UPDATE `user` SET `step` = 'editCaption_$id' WHERE `from_id` = '$from_id' LIMIT 1");
    } else joinSend($from_id);
}
#=======================#
elseif (preg_match('/^editCaption_(.*)/', $step, $match)) {
    $id = $match[1];
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        if ($text) {
            $db->query("UPDATE `file` SET `caption` = '$text' WHERE `id` = '$id'");
            sendMessage($from_id, "✅ کپشن با موفقیت تنظیم شد.", 'markdown', $btn_home, $message_id);
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id' LIMIT 1");
        }
    } else joinSend($from_id);
}
#======================= del Caption =======================#
elseif (preg_match('/^delCaption_(.*)/', $data, $match)) {
    $id = $match[1];
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $caption_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `file` WHERE `id` = '$id' LIMIT 1"))['caption'];
        if ($caption_sql) {
            $db->query("UPDATE `file` SET `caption` = '' WHERE `id` = '$id'");
            answercallbackquery($callback_query_id, "✅ کپشن با موفقیت حذف شد.");
        } else answercallbackquery($callback_query_id, "❌ فایل شما کپشنی ندارد.");
    } else joinSend($from_id);
}
#======================= accont =======================#
elseif ($text == "🎫 حساب کاربری") {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $files = $db->query("SELECT * FROM `file` WHERE `user_id` = '$from_id'");
        $countFile = mysqli_num_rows($files) ?: 0;
        $likes = number_format(mysqli_num_rows($db->query("SELECT * FROM `likes` WHERE `user_id` = '{$from_id}'")));
        $btn_profile = json_encode(['inline_keyboard' => [
            [['text' => "📤 تعداد فایل اپلود شده", 'callback_data' => "countFile"], ['text' => $countFile, 'callback_data' => "countFile"]],
            [['text' => "📲 تعداد دانلود شده", 'callback_data' => "downloads"], ['text' => number_format($user['downloads']), 'callback_data' => "downloads"]],
            [['text' => "❤️ تعداد لایک شده", 'callback_data' => "count_like"], ['text' => $likes, 'callback_data' => "count_like"]],
        ]]);
        if ($profile) {
            BoFile('SendPhoto', [
                'chat_id' => $from_id,
                'photo' => $profile,
                'caption' => "💭 حساب کاربری شما در ربات ما :\n\n👤 نام کانت شما : <code>$first_name</code>\n🌟 یوزنیم اکانت شما : <code>$username</code>\n🆔 ایدی عددی شما : <code>$from_id</code>\n\n🤖 @$usernamebot",
                'reply_markup' => $btn_profile,
                'parse_mode' => "html",
                'reply_to_message_id' => $message_id
            ]);
        } else sendMessage($from_id, "💭 حساب کاربری شما در ربات ما :\n\n👤 نام کانت شما : <code>$first_name</code>\n🌟 یوزنیم اکانت شما : <code>$username</code>\n\n🤖 @$usernamebot", "html", $btn_profile, $message_id);
    } else joinSend($from_id);
}
#======================= Uploads =======================#
elseif ($text == "📂 تاریخچه اپلود") {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $query = $db->query("SELECT * FROM `file` WHERE `user_id` = {$from_id}");
        $count = mysqli_num_rows($query);
        if ($count > 0) {
            $result = "📂 تاریخچه اپلود های شما :\n📍 تعداد فایل های اپلود شده ی شما : $count\n➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖\n\n";
            $cnt = ($count >= 10) ? 10 : $count;
            for ($i = 1; $i <= $cnt; $i++) {
                $likes = '- ❤️: <code>' . number_format(mysqli_num_rows($db->query("SELECT * FROM `likes` WHERE `file_id` = '{$fetch['id']}'"))) . '</code>';
                $downloads = '📥: <code>' . number_format($fetch['downloads']) . '</code>';
                $show_like = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_like'"))['type_id'];
                $show_seen = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_seen'"))['type_id'];
                if ($show_seen == 'inactive') $downloads = '';
                if ($show_like == 'inactive') $likes = '';
                $fetch = mysqli_fetch_assoc($query);
                $id = $fetch['id'];
                $file_size = convert($fetch['file_size']);
                $file = doc($fetch['type']);
                $time = $fetch['time'];
                $date = $fetch['date'];
                $password = $fetch['password'] ?: 'این فایل بدون رمز عبور است ... !';
                $result .= $i . ". 🗂 /get_" . $id . PHP_EOL . "💾 " . $file_size . PHP_EOL . "✏️ ویرایش : /edit_" . $id . PHP_EOL . "🗑 حذف : /del_" . $id . PHP_EOL . "▪️ نوع فایل : <b>$file</b>" . PHP_EOL . "🔐 رمز فایل : <code>$password</code>" . PHP_EOL . "$downloads $likes" . PHP_EOL . "🕓 تاریخ و زمان اپلود : <b>" . $date . " - " . $time . "</b>" . PHP_EOL . "➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖" . PHP_EOL;
            }
            if ($count > 10) sendMessage($from_id, $result, "html", json_encode(['inline_keyboard' => [[['text' => "▪️ صفحه ی بعدی", 'callback_data' => "Dnext_10"]]]]), $message_id);
            else sendMessage($from_id, $result, "html", null, $message_id);
        } else sendMessage($from_id, "▪️ تاریخچه اپلود شما خالی میباشد ... !", "html", null, $message_id);
    } else joinSend($from_id);
}
#=======================#
elseif (preg_match('/^Dnext_(.*)/', $data, $match)) {
    $last_id = $match[1];
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $query = $db->query("SELECT * FROM `file` WHERE `user_id` = '{$from_id}'");
        $count = mysqli_num_rows($query);
        $result = "📂 تاریخچه اپلود های شما :\n📍 تعداد فایل های اپلود شده ی شما : $count\n➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖\n\n";
        $records = [];
        while ($fetch = mysqli_fetch_assoc($query)) $records[] = $fetch;
        if ($last_id + 10 < $count) $endponit = $last_id + 10;
        else $endponit = $count;
        for ($row = $last_id; $row < $endponit; $row++) {
            $likes = '- ❤️: <code>' . number_format(mysqli_num_rows($db->query("SELECT * FROM `likes` WHERE `file_id` = '{$records[$row]['id']}'"))) . '</code>';
            $downloads = '📥: <code>' . number_format($records[$row]['downloads']) . '</code>';
            $show_like = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_like'"))['type_id'];
            $show_seen = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_seen'"))['type_id'];
            if ($show_seen == 'inactive') $downloads = '';
            if ($show_like == 'inactive') $likes = '';
            $id = $records[$row]['id'];
            $file_size = convert($records[$row]['file_size']);
            $file = doc($records[$row]['type']);
            $time = $records[$row]['time'];
            $date = $records[$row]['date'];
            $password = $records[$row]['password'] ? $records[$row]['password'] : 'این فایل بدون رمز عبور است ... !';
            $result .= $row . ". 🗂 /get_" . $id . PHP_EOL . "💾 " . $file_size . PHP_EOL . "✏️ ویرایش : /edit_" . $id . PHP_EOL . "🗑 حذف : /del_" . $id . PHP_EOL . "▪️ نوع فایل : <b>$file</b>" . PHP_EOL . "🔐 رمز فایل : <code>$password</code>" . PHP_EOL . "$downloads $likes" . PHP_EOL . "🕓 تاریخ و زمان اپلود : <b>" . $date . " - " . $time . "</b>" . PHP_EOL . "➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖" . PHP_EOL;
        }
        if ($count > $last_id + 10) editMessageText($from_id, $message_id, $result, "html", json_encode(['inline_keyboard' => [[['text' => "➕ صفحه بعدی", 'callback_data' => "Dnext_" . $endponit], ['text' => "➖ صفحه ی قبلی", 'callback_data' => "Dprev_" . $endponit]]]]));
        else editMessageText($from_id, $message_id, $result, "html", json_encode(['inline_keyboard' => [[['text' => "➖ صفحه ی قبلی", 'callback_data' => "Dprev_" . $endponit]]]]));
    } else joinSend($from_id);
}
#=======================#
elseif (preg_match('/^Dprev_(.*)/', $data, $match)) {
    $last_id = $match[1];
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $query = $db->query("SELECT * FROM `file` WHERE `user_id` = '{$from_id}'");
        $count = mysqli_num_rows($query);
        $result = "📂 تاریخچه اپلود های شما :\n📍 تعداد فایل های اپلود شده ی شما : $count\n➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖\n\n";
        $records = [];
        while ($fetch = mysqli_fetch_assoc($query)) $records[] = $fetch;
        if ($last_id % 10 == 0) $endponit = $last_id - 10;
        else {
            $last_id = $last_id - ($last_id % 10);
            $endponit = $last_id;
        }
        for ($row = $endponit - 9; $row <= $endponit; $row++) {
            $likes = '- ❤️: <code>' . number_format(mysqli_num_rows($db->query("SELECT * FROM `likes` WHERE `file_id` = '{$records[$row]['id']}'"))) . '</code>';
            $downloads = '📥: <code>' . number_format($records[$row]['downloads']) . '</code>';
            $show_like = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_like'"))['type_id'];
            $show_seen = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_seen'"))['type_id'];
            if ($show_seen == 'inactive') $downloads = '';
            if ($show_like == 'inactive') $likes = '';
            $id = $records[$row]['id'];
            $file_size = convert($records[$row]['file_size']);
            $file = doc($records[$row]['type']);
            $time = $records[$row]['time'];
            $date = $records[$row]['date'];
            $password = $records[$row]['password'] ? $records[$row]['password'] : 'این فایل بدون رمز عبور است ... !';
            $result .= $row + 1 . ". 🗂 /get_" . $id . PHP_EOL . "💾 " . $file_size . PHP_EOL . "✏️ ویرایش : /edit_" . $id . PHP_EOL . "🗑 حذف : /del_" . $id . PHP_EOL . "▪️ نوع فایل : <b>$file</b>" . PHP_EOL . "🔐 رمز فایل : <code>$password</code>" . PHP_EOL . "$downloads $likes" . PHP_EOL . "🕓 تاریخ و زمان اپلود : <b>" . $date . " - " . $time . "</b>" . PHP_EOL . "➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖" . PHP_EOL;
        }
        if ($count > $last_id and $endponit - 10 > 0) editMessageText($from_id, $message_id, $result, "html", json_encode(['inline_keyboard' => [[['text' => "➕ صفحه بعدی", 'callback_data' => "Dnext_" . $endponit], ['text' => "➖ صفحه ی قبلی", 'callback_data' => "Dprev_" . $endponit]]]]));
        else editMessageText($from_id, $message_id, $result, "html", json_encode(['inline_keyboard' => [[['text' => "➕ صفحه بعدی", 'callback_data' => "Dnext_" . $endponit]]]]));
    } else joinSend($from_id);
}
#======================= set password =======================#
elseif ($text == "🔐 تنظیم پسورد" and mysqli_num_rows($admin_sql) > 0) {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        sendMessage($from_id, "▪️ لطفا شناسه فایل خود را ارسال کنید :", "markdown", $btn_back, $message_id);
        $db->query("UPDATE `user` SET `step` = 'sendid' WHERE `from_id` = '{$from_id}' LIMIT 1");
    } else joinSend($from_id);
}
#=======================#
elseif ($step == "sendid" and mysqli_num_rows($admin_sql) > 0) {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $query = mysqli_fetch_assoc($db->query("SELECT * FROM `file` WHERE `user_id` = '{$from_id}' and `id` = '{$text}'"));
        if ($query) {
            sendMessage($from_id, "▪️لطفا پسورد دلخواه رو بفرستید تا فایل شما قفل شود :", "markdown", $btn_back, $message_id);
            $db->query("UPDATE `user` SET `step` = 'sendPassword', `getFile` = '$text' WHERE `from_id` = '{$from_id}' LIMIT 1");
        } else sendMessage($from_id, "▪️ خطا , این فایل در دیتابیس موجود نمیباشد یا فایل مال شخص دیگری میباشد و  شما اجازه دسترسی به این فایل را ندارید ... !\n🔐 لطفا شناسه فایل را صحیح بفرستید :", "markdown", $btn_back, $message_id);
    } else joinSend($from_id);
}
#=======================#
elseif ($step == "sendPassword" and mysqli_num_rows($admin_sql) > 0) {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $id = $user['getFile'];
        $pass = $text;
        sendMessage($from_id, "✔️ با موفقیت فایل شما قفل شد ... !", "markdown", $btn_home, $message_id);
        $db->query("UPDATE `user` SET `step` = 'none', `getFile` = '' WHERE `from_id` = '{$from_id}' LIMIT 1");
        $db->query("UPDATE `file` SET `password` = '$pass' WHERE `id` = '{$id}'");
    } else joinSend($from_id);
}
#======================= edit file =======================#
elseif (preg_match('/^\/edit_(.*)/', $text, $match)) {
    $id = $match[1];
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $fileData = $db->query("SELECT * FROM `file` WHERE `id` = '{$id}' AND `user_id` = '{$from_id}'");
        if (mysqli_num_rows($fileData) > 0) {
            $limit_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `file` WHERE `id` = '$id'"))['DLimit'] ?: "غیرفعال";
            $coin_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `file` WHERE `id` = '$id'"))['DCoin'] ?: "غیرفعال";
            sendmessage($from_id, "برای ویرایش اطلاعات فایلی با ایدی زیر از دکمه های زیر استفاده کنید :\n📥 /get_" . $id, "html", json_encode([
                'inline_keyboard' => [
                    [['text' => "📋 تغییر کپشن", 'callback_data' => "editCaption_$id"]],
                    [['text' => "🗑 حذف کپشن", 'callback_data' => "delCaption_$id"]]
                ]
            ]), $message_id);
        } else sendmessage($from_id, "❌ فایل در دیتابیس یافت نشد.", null, null, $message_id);
    } else joinSend($from_id);
}
#======================= del file =======================#
elseif (preg_match('/^\/del_(.*)/', $text, $match)) {
    $id = $match[1];
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $fileData = $db->query("SELECT * FROM `file` WHERE `id` = '{$id}'");
        if (mysqli_num_rows($fileData) > 0) {
            $db->query("DELETE FROM `file` WHERE `id` = '{$id}' and `user_id` = '{$from_id}'");
            sendmessage($from_id, "✅ فایل با موفقیت حذف شد.", null, $btn_home, $message_id);
        } else sendmessage($from_id, "❌ فایل در دیتابیس یافت نشد.", null, null, $message_id);
    } else joinSend($from_id);
}
#==============================================# panel #==============================================#
elseif (mysqli_num_rows($admin_sql) > 0) {
    $admin_data = mysqli_fetch_assoc($admin_sql);
    $panel = json_encode([
        'keyboard' => [
            [['text' => "📊 امار ربات"]],
            [['text' => "📫 بخش ارسال پیام"], ['text' => "🗑 تنظیم حذف شدن"]],
            [['text' => "🔒 بخش قفل ها"], ['text' => "🧑🏻‍💻 بخش ادمین ها"]],
            [['text' => "📣 بخش تبلیغات"], ['text' => "⚙️ بخش تنظیمات"]],
            [['text' => "👤 مدیریت کاربران"],['text' =>"بخش کاربردی 📝"]],
            [['text' => "📁 پوشه سازی رسانه‌ها"]],
            [['text' => "🔙"]],
        ], 'resize_keyboard' => true
    ]);
    $back_panel = json_encode([
        'keyboard' => [
            [['text' => "برگشت 🔙"]]
        ], 'resize_keyboard' => true
    ]);
    $btn_users = json_encode(['inline_keyboard' => [
        [['text' => "🟢 انبلاک کردن کاربر", 'callback_data' => "unblock_user"], ['text' => "🔴 بلاک کردن کاربر", 'callback_data' => "block_user"]],
        [['text' => "🔙 بازگشت", 'callback_data' => "panel"]]
    ]]);
    $btn_ads = json_encode(['inline_keyboard' => [
        [['text' => "✏️ کپشن فایل ها", 'callback_data' => "show_caption"]],
        [['text' => "👁‍🗨 لینک سین اجباری", 'callback_data' => "show_seenLink"]],
        [['text' => "💬 لینک کامنت اجباری", 'callback_data' => "show_commentLink"]],
        [['text' => "🧧 ارسال تبلیغ بعد پست", 'callback_data' => "show_ads"]],
        [['text' => "🟩 تبلیغ کانال زیر پست (دکمه شیشه ای)", 'callback_data' => "post_ads"]],
        [['text' => "📣 تبلیغ بعد از پیام استارت", 'callback_data' => "start_ads"]],
        [['text' => "🔙 بازگشت", 'callback_data' => "panel"]]
    ]]);
    $btn_settings = json_encode(['inline_keyboard' => [
        [['text' => "🤖 وضعیت ربات", 'callback_data' => "bot_status"]],
        [['text' => "📝 تنظیم متن استارت", 'callback_data' => "start_text"]],
        [['text' => "🔒 تنظیم متن جوین", 'callback_data' => "lock_text"]],
        [['text' => "❤️ نمایش لایک", 'callback_data' => "show_like"]],
        [['text' => "👁‍🗨 نمایش تعداد سین", 'callback_data' => "show_seen"]],
        [['text' => "🎬 اسپویلر ویدیو", 'callback_data' => "spoiler_setting"]],
        [['text' => "🔧 بخش تنظیمات اسپم", 'callback_data' => "spam_setting"]],
        [['text' => "🔗 تنظیم متن هایپرلینک", 'callback_data' => "hyperlink"]],
        [['text' => "🔙 بازگشت", 'callback_data' => "panel"]]
    ]]);
    #======================= panel =======================#
    if ($text == '/panel' or $text == '👤 مدیریت') {
        sendMessage($from_id, "👤 به منوی مدیریت ربات خود خوش امدید\n\n⏳ مهلت اشتراک باقیمانده : $days", "markdown", $panel, $message_id);
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
    }
    #======================= back =======================#
    elseif ($text == 'برگشت 🔙' or $data == "panel") {
        sendMessage($from_id, "▪️ به منوی مدیریت بازگشتید :", "markdown", $panel, $message_id);
        if ($data) deleteMessage($from_id, $message_id);
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
        exit(false);
    }
    #======================= TEST DEBUG =======================#
    elseif ($text == "TEST") {
        sendMessage($from_id, "تست موفق!", null, json_encode(['inline_keyboard' => [
            [['text' => '➕ تست دکمه', 'callback_data' => 'test_button']],
            [['text' => '🔙 برگشت', 'callback_data' => 'panel']]
        ]]));
    }

    #======================= add folder =======================#
    elseif (preg_match('/^add_folder_(.*)/', $data, $match)) {
        $parent_id = $match[1] == '0' ? null : $match[1];
        $parent_name = $parent_id ? mysqli_fetch_assoc($db->query("SELECT `name` FROM `folders` WHERE `id` = '$parent_id'"))['name'] : 'ریشه';
        editMessageText($from_id, $message_id, "📝 افزودن پوشه جدید در: $parent_name\n\nلطفا نام پوشه جدید را وارد کنید:", null, json_encode(['inline_keyboard' => [
            [['text' => '🔙 برگشت', 'callback_data' => $parent_id ? "admin_view_folder_$parent_id" : 'panel']]
        ]]));
        $db->query("UPDATE `user` SET `step` = 'add_folder_$parent_id' WHERE `from_id` = '$from_id'");
    }
    #======================= admin view folder =======================#
    elseif (preg_match('/^admin_view_folder_(.*)/', $data, $match)) {
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '$folder_id'"));
        
        if ($folder) {
            // مسیر پوشه
            $breadcrumb = [];
            $current_folder = $folder;
            while ($current_folder) {
                array_unshift($breadcrumb, $current_folder['name']);
                if ($current_folder['parent_id']) {
                    $current_folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '{$current_folder['parent_id']}'"));
                } else {
                    break;
                }
            }
            $path = "📁 " . implode(" > ", $breadcrumb);
            
            $folderText = "$path\n\n";
            $button = [];
            
            // زیرپوشه‌ها
            $subFoldersSQL = $db->query("SELECT * FROM `folders` WHERE `parent_id` = '$folder_id' ORDER BY `created_at` DESC");
            if (mysqli_num_rows($subFoldersSQL) > 0) {
                $folderText .= "📂 زیرپوشه‌ها:\n";
                while ($row = mysqli_fetch_assoc($subFoldersSQL)) {
                    $subCount = mysqli_num_rows($db->query("SELECT * FROM `folders` WHERE `parent_id` = '{$row['id']}'"));
                    $fileCount = mysqli_num_rows($db->query("SELECT * FROM `folder_files` WHERE `folder_id` = '{$row['id']}'"));
                                    $button[] = [['text' => "{$row['name']} ($subCount, $fileCount)", 'callback_data' => "admin_view_folder_{$row['id']}"]];
            }
        }
        
        // فایل‌ها  
        $filesSQL = $db->query("SELECT ff.*, f.id as file_code, f.type, f.caption FROM `folder_files` ff JOIN `file` f ON ff.file_id = f.id WHERE ff.folder_id = '$folder_id' ORDER BY ff.created_at DESC LIMIT 10");
            if (mysqli_num_rows($filesSQL) > 0) {
                $folderText .= "\n📎 فایل‌ها:\n";
                while ($row = mysqli_fetch_assoc($filesSQL)) {
                    $fileType = doc($row['type']);
                    $caption = $row['caption'] ? mb_substr($row['caption'], 0, 20) . "..." : $fileType;
                    $button[] = [['text' => "📄 $caption", 'callback_data' => "file_info_{$row['file_code']}"], ['text' => '🗑', 'callback_data' => "remove_file_{$folder_id}_{$row['file_code']}"]];
                }
            }
            
            if (mysqli_num_rows($subFoldersSQL) == 0 && mysqli_num_rows($filesSQL) == 0) {
                $folderText .= "❌ این پوشه خالی است.";
            }
            
            // دکمه‌های عملیات
            $button[] = [['text' => '➕ زیرپوشه جدید', 'callback_data' => "add_folder_$folder_id"], ['text' => '📎 افزودن فایل', 'callback_data' => "add_file_$folder_id"]];
            $button[] = [['text' => '✏️ تغییر نام پوشه', 'callback_data' => "edit_folder_$folder_id"], ['text' => '🗑 حذف پوشه', 'callback_data' => "delete_folder_$folder_id"]];
            $button[] = [['text' => '🔙 برگشت', 'callback_data' => $folder['parent_id'] ? "admin_view_folder_{$folder['parent_id']}" : 'panel']];
            
            editMessageText($from_id, $message_id, $folderText, null, json_encode(['inline_keyboard' => $button]));
        } else {
            answercallbackquery($callback_query_id, "❌ پوشه یافت نشد!");
        }
    }
    #======================= process folder name =======================#
    elseif (preg_match('/^add_folder_(.*)/', $step, $match)) {
        $parent_id = $match[1] == 'null' ? null : $match[1];
        $text_length = mb_strlen($text, 'UTF-8');
        
        if ($text_length >= 1 && $text_length <= 100) {
            // ابتدا جدول رو بسازیم اگر وجود نداره
            $create_table = "CREATE TABLE IF NOT EXISTS `folders` (
                `id` int(11) AUTO_INCREMENT PRIMARY KEY,
                `name` varchar(255) COLLATE utf8mb4_bin NOT NULL,
                `parent_id` int(11) DEFAULT NULL,
                `order_position` int(11) DEFAULT 0,
                `created_at` int(20) DEFAULT 0,
                `created_by` varchar(20) COLLATE utf8mb4_bin DEFAULT NULL
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin";
            
            $db->query($create_table);
            
            // Escape کردن متن برای امنیت
            $safe_text = mysqli_real_escape_string($db, $text);
            $safe_from_id = mysqli_real_escape_string($db, $from_id);
            $safe_parent_id = $parent_id ? "'".mysqli_real_escape_string($db, $parent_id)."'" : 'NULL';
            
            $insert_query = "INSERT INTO `folders` (`name`, `parent_id`, `order_position`, `created_at`, `created_by`) VALUES ('$safe_text', $safe_parent_id, 0, '$time', '$safe_from_id')";
            $result = $db->query($insert_query);
            
            if ($result) {
                $folder_id = mysqli_insert_id($db);
                $keyboard = json_encode(['inline_keyboard' => [
                    [['text' => '➕ زیرپوشه جدید', 'callback_data' => "add_folder_$folder_id"], ['text' => '📎 افزودن فایل', 'callback_data' => "add_file_$folder_id"]],
                    [['text' => '🔙 برگشت', 'callback_data' => $parent_id ? "admin_view_folder_$parent_id" : 'panel']]
                ]]);
                sendMessage($from_id, "✅ پوشه «$text» با موفقیت ایجاد شد!", null, $keyboard, $message_id);
                $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            } else {
                sendMessage($from_id, "❌ خطا در ایجاد پوشه: " . mysqli_error($db));
            }
        } else {
            sendMessage($from_id, "❌ نام پوشه باید بین 1 تا 100 کاراکتر باشد. لطفا دوباره تلاش کنید:");
        }
    }
    #======================= add file to folder =======================#
    elseif (preg_match('/^add_file_(.*)/', $data, $match)) {
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT `name` FROM `folders` WHERE `id` = '$folder_id'"));
        if ($folder) {
            editMessageText($from_id, $message_id, "📎 افزودن فایل به پوشه: {$folder['name']}\n\n📝 لطفا کد فایل (ID) را وارد کنید:\n\n💡 نکته: کد فایل را از بخش تاریخچه اپلود یا کد پیگیری فایل دریافت کنید.", null, json_encode(['inline_keyboard' => [
                [['text' => '🔙 برگشت', 'callback_data' => "admin_view_folder_$folder_id"]]
            ]]));
            $db->query("UPDATE `user` SET `step` = 'add_file_$folder_id' WHERE `from_id` = '$from_id'");
        }
    }
    #======================= process add file =======================#
    elseif (preg_match('/^add_file_(.*)/', $step, $match)) {
        $folder_id = $match[1];
        $file_id = trim($text);
        
        // بررسی وجود فایل
        $fileExists = mysqli_fetch_assoc($db->query("SELECT * FROM `file` WHERE `id` = '$file_id'"));
        if (!$fileExists) {
            sendMessage($from_id, "❌ فایل با این کد یافت نشد. لطفا کد صحیح را وارد کنید:");
            return;
        }
        
        // ایجاد جدول فایل‌های پوشه اگر وجود نداره
        $db->query("CREATE TABLE IF NOT EXISTS `folder_files` (
            `id` int(11) AUTO_INCREMENT PRIMARY KEY,
            `folder_id` int(11) NOT NULL,
            `file_id` varchar(20) COLLATE utf8mb4_bin NOT NULL,
            `created_at` int(20) DEFAULT 0
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin");
        
        // بررسی اینکه فایل قبلاً در این پوشه اضافه نشده باشد
        $fileInFolder = mysqli_num_rows($db->query("SELECT * FROM `folder_files` WHERE `folder_id` = '$folder_id' AND `file_id` = '$file_id'"));
        if ($fileInFolder > 0) {
            sendMessage($from_id, "❌ این فایل قبلاً در این پوشه موجود است!");
            return;
        }
        
        $db->query("INSERT INTO `folder_files` (`folder_id`, `file_id`, `created_at`) VALUES ('$folder_id', '$file_id', '$time')");
        $folder = mysqli_fetch_assoc($db->query("SELECT `name` FROM `folders` WHERE `id` = '$folder_id'"));
        $fileType = doc($fileExists['type']);
        
        sendMessage($from_id, "✅ فایل $fileType با موفقیت به پوشه «{$folder['name']}» اضافه شد!", null, json_encode(['inline_keyboard' => [
            [['text' => '📎 افزودن فایل دیگر', 'callback_data' => "add_file_$folder_id"]],
            [['text' => '🔙 بازگشت به پوشه', 'callback_data' => "admin_view_folder_$folder_id"]]
        ]]), $message_id);
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
    }
    #======================= delete folder =======================#
    elseif (preg_match('/^delete_folder_(.*)/', $data, $match)) {
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '$folder_id'"));
        
        if ($folder) {
            editMessageText($from_id, $message_id, "⚠️ آیا مطمئن هستید که می‌خواهید پوشه «{$folder['name']}» و تمام محتویات آن را حذف کنید؟", null, json_encode(['inline_keyboard' => [
                [['text' => '✅ بله، حذف کن', 'callback_data' => "confirm_delete_folder_$folder_id"], ['text' => '❌ خیر', 'callback_data' => "admin_view_folder_$folder_id"]],
                [['text' => '🔙 برگشت', 'callback_data' => "admin_view_folder_$folder_id"]]
            ]]));
        }
    }
    #======================= confirm delete folder =======================#
    elseif (preg_match('/^confirm_delete_folder_(.*)/', $data, $match)) {
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '$folder_id'"));
        
        if ($folder) {
            // حذف پوشه و محتویاتش (CASCADE خودکار انجام می‌شه)
            $db->query("DELETE FROM `folders` WHERE `id` = '$folder_id'");
            $db->query("DELETE FROM `folder_files` WHERE `folder_id` = '$folder_id'");
            
            answercallbackquery($callback_query_id, "✅ پوشه «{$folder['name']}» با موفقیت حذف شد.");
            
            // بازگشت به پوشه والد یا صفحه اصلی
            if ($folder['parent_id']) {
                $parent = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '{$folder['parent_id']}'"));
                if ($parent) {
                    $callback_data = "admin_view_folder_{$folder['parent_id']}";
                } else {
                    $callback_data = 'panel';
                }
            } else {
                $callback_data = 'panel';
            }
            
            // شبیه‌سازی کلیک روی دکمه برگشت
            $data = $callback_data;
            if ($callback_data == 'panel') {
                editMessageText($from_id, $message_id, "✅ عملیات موفق! برای ادامه کار روی 📁 پوشه سازی رسانه‌ها کلیک کنید.", null, json_encode(['inline_keyboard' => [[['text' => '🔙 برگشت به پنل', 'callback_data' => 'panel']]]]));
            }
        }
    }
    #======================= status =======================#
    elseif ($text == '📊 امار ربات') {
        $countUsers = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user`"))['count'] ?: 0);
        $countFiles = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `file`"))['count'] ?: 0);
        $countAdmins = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`id`) AS count FROM `settings` WHERE `type` = 'admin'"))['count'] ?: 0);
        $countChannels = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`id`) AS count FROM `lock`"))['count'] ?: 0);
        $countUsersNow = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user` WHERE `update_at` > $time - 60"))['count'] ?: 0);
        $countUsersAClock = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user` WHERE `create_at` > $time - 3600"))['count'] ?: 0);
        $countUsers6Clock = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user` WHERE `create_at` > $time - 21600"))['count'] ?: 0);
        $countUsers12Clock = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user` WHERE `create_at` > $time - 43200"))['count'] ?: 0);
        $countUsersDay = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user` WHERE `create_at` > $time - 86400"))['count'] ?: 0);
        $countUsersWeek = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user` WHERE `create_at` > $time - 604800"))['count'] ?: 0);
        $countUsersMonth = number_format(mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user` WHERE `create_at` > $time - 2419200"))['count'] ?: 0);
        $time = date('h:i:s');
        $date = date('Y/m/d');
        sendMessage($from_id, "🤖 امار شما در ساعت `$time` و تاریخ `$date` به این صورت میباشد \n\n👥 تعداد اعضا : `$countUsers`\n👀 تعداد کاربران آنلاین : `$countUsersNow`\n🕒 تعداد کاربران ساعت گذشته : `$countUsersAClock`\n🕡 تعداد کاربران 6 ساعت گذشته : `$countUsers6Clock`\n🕛 تعداد کاربران 12 ساعت گذشته : `$countUsers12Clock` \n☪️ تعداد کاربران 24 ساعت گذشته : `$countUsersDay`\n7️⃣ تعداد کاربران هفته گذشته : `$countUsersWeek`\n🌛 تعداد کاربران ماه گذشته : `$countUsersMonth`\n🗂 تعداد فایل ها : `$countFiles`\n👨🏻‍💻 تعداد ادمین ها : `$countAdmins`\n📢 تعداد کانال ها :`$countChannels`", "markdown", $panel, $message_id);
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
    }
    #======================= send & for manage =======================#
      elseif ($text == "بخش کاربردی 📝") {
            sendMessage($from_id, "به بخش ( 📫 بخش ارسال پیام ) خوش امدید لطفا با استفاده از دکمه های زیر ادامه دهید.", "markdown", json_encode([
                'keyboard' => [
                    [['text' => "🔧 مود دانلود فایل"], ['text' => "🛂 ارسال به چنل"]],
                    [['text' => "🧬 کوتاه کننده لینک"]],
                    [['text' => "برگشت 🔙"]],
                ], 'resize_keyboard' => true
            ]), $message_id);
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
        }  
    #======================= send & for manage =======================#
   
    if($text == "🧬 کوتاه کننده لینک"){	
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"🧬 سرور مورد نظر را انتخاب نمایید",
'reply_markup'=>json_encode([
'keyboard'=>[
[['text' => "🧬 سرور دو"],['text' =>"🧬 سرور یک"]],
[['text' => "🧬 سرور سه"]],
[['text' => "برگشت 🔙"]],
],
"resize_keyboard"=>true,
])
]); 
}

if($text == "🧬 سرور سه"){	
$db->query("UPDATE `user` SET `step` = 'mehdi' WHERE `from_id` = '$from_id'");
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>" 🔈 لینک مورد نظر را ارسال کنید",
'reply_markup'=>json_encode([
'keyboard'=>[
[['text' => "برگشت 🔙"]],
],
"resize_keyboard"=>true,
])
]); 
}
if($step == "mehdi"){ 
$links = file_get_contents("https://payskip.org/api?api=676bd0fdd3782823539f93fb5087ba8a474c8eb9&url=$text");
if($links == true){
$db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"* لینک با موفقیت کوتاه شد

$links",
'reply_markup'=>$panel,
]); 
}else{
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"* لینک اشتباه است",
]); 
}}

if($text == "🧬 سرور دو"){	
$db->query("UPDATE `user` SET `step` = 'dsids9usds' WHERE `from_id` = '$from_id'");
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>" 🔈 لینک مورد نظر را ارسال کنید",
'reply_markup'=>json_encode([
'keyboard'=>[
[['text' => "برگشت 🔙"]],
],
"resize_keyboard"=>true,
])
]); 
}
if($step == "dsids9usds"){ 
$links = file_get_contents("http://ouo.io/api/SwJGl46G?s=$text");
if($links == true){
$db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"* لینک با موفقیت کوتاه شد

$links",
'reply_markup'=>$panel,
]); 
}else{
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"* لینک اشتباه است",
]); 
}}


if($text == "🧬 سرور یک"){	
$db->query("UPDATE `user` SET `step` = 'sddiods9dsd' WHERE `from_id` = '$from_id'");
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"🔈 لینک مورد نظر را ارسال کنید",
'reply_markup'=>json_encode([
'keyboard'=>[
[['text' => "برگشت 🔙"]],
],
"resize_keyboard"=>true,
])
]); 
}
if($step == "sddiods9dsd"){ 
$links = file_get_contents("https://panelalmasozv.ir/i.php?code=$text");
if($links == true){
$db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"* لینک با موفقیت کوتاه شد

$links",
'reply_markup'=>$panel,
]); 
}else{
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"* لینک اشتباه است",
]); 
}}


elseif ($text == "🛂 ارسال به چنل") {
            sendMessage($from_id, "به بخش ( 📫 بخش ارسال پیام ) خوش امدید لطفا با استفاده از دکمه های زیر ادامه دهید.", "markdown", json_encode([
                'keyboard' => [
                    [['text' => "🔈 ارسال بدون عکس"], ['text' => "🔈 ارسال با عکس"]],
                    [['text' => "برگشت 🔙"]],
                ], 'resize_keyboard' => true
            ]), $message_id);
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
        }    
    
    
if($text == "🔈 ارسال با عکس"){	
$db->query("UPDATE `user` SET `step` = 'step1s' WHERE `from_id` = '$from_id'");
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"🔈 عکس را ارسال کنید",
'reply_markup'=>json_encode([
'keyboard'=>[
[['text' => "برگشت 🔙"]],
],
"resize_keyboard"=>true,
])
]); 
}
if($step == "step1s" || $text == "🔈 ارسال بدون عکس"){ 
$photo = $update->message->photo;
$file_id = $photo[count($photo)-1]->file_id;
if($step == "step1s"){
file_put_contents("B1.txt",$file_id);
}
$db->query("UPDATE `user` SET `step` = 'step2s' WHERE `from_id` = '$from_id'");
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"🔈 متن را ارسال کنید",
$back_panel,
]); 
}
if($step == "step2s"){ 
file_put_contents("B2.txt",$text);
$db->query("UPDATE `user` SET `step` = 'step3s' WHERE `from_id` = '$from_id'");
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"🔈 لینک را ارسال کنید
در خط دوم هم یکی از اعداد زیر را ارسال کنید :
اگر میخواهید لینک به صورت شیشه ای ارسال در خط دوم عدد 1 را قرار بدید
اگرم به صورت منشن میخواهید ارسال شد در خط دوم 2 را قرار دهید

در خط سوم هم ایدی چنل را با @ قرار دهید یا اگر خصوصی است با -100",

'reply_markup'=>$back_panel,
]); 
}
if($step == "step3s"){ 
$B2 = file_get_contents("B2.txt");
$B1 = file_get_contents("B1.txt");
$link = explode("\n",$text)[0];
$channel = explode("\n",$text)[2];
$db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
if($B2 == true){
if(explode("\n",$text)[1] == "1"){
BoFile('sendphoto',[
'photo'=>"$B1",
'chat_id'=>$channel,
'caption'=>"$B2

[دانلود فیلم]($link)",
'parse_mode'=>"MarkDown",
]);
}else{
BoFile('sendphoto',[
'photo'=>"$B1",
'chat_id'=>$channel,
'caption'=>"$B2

[دانلود فیلم]($link)",
'parse_mode'=>"MarkDown",
'reply_markup'=>json_encode([
'inline_keyboard'=>[
[['text'=>"دانلود فیلم",'url'=>"$link"]],
],
])
]);
}}
if($B1 != true){
if(explode("\n",$text)[1] == "1"){
BoFile('sendMessage',[
'chat_id'=>$channel,
'text'=>"$B2

[دانلود فیلم]($link)",
'parse_mode'=>"MarkDown",
]);
}else{
BoFile('sendMessage',[
'chat_id'=>$channel,
'text'=>"$B2

[دانلود فیلم]($link)",
'parse_mode'=>"MarkDown",
'reply_markup'=>json_encode([
'inline_keyboard'=>[
[['text'=>"دانلود فیلم",'url'=>"$link"]],
],
])
]);
}}
unlink("B1.txt");
unlink("B2.txt");
$Bot["step"] = "none";
file_put_contents("PaefkSedV/$from_id/$from_id.json",json_encode($Bot,true));
BoFile('sendMessage',[
'chat_id'=>$chat_id,
'text'=>"🔈 انجام شد",
'reply_markup'=>$back_panel,
]); 
}
#======================= send & for manage =======================#
    elseif ($text == "📫 بخش ارسال پیام") {
        sendMessage($from_id, "به بخش ( 📫 بخش ارسال پیام ) خوش امدید لطفا با استفاده از دکمه های زیر ادامه دهید.", "markdown", json_encode([
            'keyboard' => [
                [['text' => "📪 ارسال به همه"], ['text' => "📪 فوروارد به همه"]],
                [['text' => "برگشت 🔙"]],
                [['text' => '🔘 تنظیم دکمه همگانی']]
            ], 'resize_keyboard' => true
        ]), $message_id);
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
    }
    #======================= send all =======================#
  elseif ($text == '📪 ارسال به همه') {
     sendMessage($from_id, "▪️ لطفا پیام خود را ارسال کنید :\nمیتوانید در قالب html ارسال کنید", "markdown", $back_panel, $message_id);
     $db->query("UPDATE `user` SET `step` = 'sendAll' WHERE `from_id` = '$from_id'");
 }
 elseif ($text == '🔘 تنظیم دکمه همگانی'){
    sendMessage($from_id,"🔘 لطفا به صورت مثال زیر ارسال کنید .

    در خط اول اسم دکمه و در خط دوم لینک تا تنظیم شود
    test
    https://t.me/GizMizTel",null,$back_panel,$message_id);
    $db->query("UPDATE `user` SET `step` = 'setbut' WHERE `from_id` = '$from_id'");
 }
 elseif ($step == 'setbut'){
    $exp = explode("\n",$text);
    if (count($exp) == 2){

        $name = $exp[0];
        $url = $exp[1];

        file_put_contents('name.txt',$name);
        file_put_contents('url.txt',$url);
        sendMessage($from_id,"انجام شد .",null,$back_panel,$message_id);
    $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
    }
 }
 #=======================#
 elseif ($step == 'sendAll' and $text != "برگشت 🔙"){
     if ($text) {
         $text = urlencode($text);
         $countUsers = mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user`"))['count'] ?: 0;
         $times = round($countUsers/100);
         if($times < 0.5){
         $times = 0.5;
         }
                  
        $msgId =  sendMessage($from_id, "✔️ پیام شما با موفقیت برای ارسال همگانی تنظیم شد
         
👥 تعداد اعضای ربات : $countUsers

‼️ دکمه های شیشه ای زیر خودکار اپدیت میشوند","markdown", json_encode(['inline_keyboard' =>[
  [['text' => "📋 تعداد افراد ارسالی : 0 ", 'callback_data' => "editCaption_id"]],
[['text' => "📋 زمان تخمینی باقیمانده : $times", 'callback_data' => "delCaption_id"]]
             ]]), $message_id)->result->message_id;
             file_put_contents('lib/msg.txt',$msgId);
             file_put_contents('lib/id.txt',$from_id);
         $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
         $db->query("DELETE FROM `send` WHERE 1");
         $db->query("INSERT INTO `send`(`step`, `text`, `from`, `user`) VALUES ('send', '$text', '$from_id', 0)");
         exit(false);
     } else sendMessage($from_id, "❌ شما فقط میتوانید متن ارسال کنید برای ارسال تایپ مسیج های دیگر ها با تایپ های دیگر لطفا بخش فروارد همگانی بروید.", "markdown", $panel, $message_id);
 }

 #======================= for all =======================#
  elseif ($text == '📪 فوروارد به همه') {
     sendMessage($from_id, "▪️ لطفا پیام خود را ارسال کنید :", "markdown", $back_panel, $message_id);
     $db->query("UPDATE `user` SET `step` = 'forAll' WHERE `from_id` = '$from_id'");
 }
 #=======================#
 elseif ($step == 'forAll' and $text != "برگشت 🔙"){
     $countUsers = mysqli_fetch_assoc($db->query("SELECT COUNT(`row`) AS count FROM `user`"))['count'] ?: 0;
         $times = round($countUsers/100);
         if($times < 0.5){
         $times = 0.5;
         }
         
    $msgId = sendMessage($from_id, "✔️ پیام شما با موفقیت برای ارسال همگانی تنظیم شد

👥 تعداد اعضای ربات : $countUsers

‼️ دکمه های شیشه ای زیر خودکار اپدیت میشوند","markdown", json_encode(['inline_keyboard' =>[
[['text' => "📋 تعداد افراد ارسالی : 0 ", 'callback_data' => "none"]],
[['text' => "📋 زمان تخمینی باقیمانده : $times", 'callback_data' => "none"]]
             ]]), $message_id)->result->message_id;
             file_put_contents('lib/msg.txt',$msgId);
             file_put_contents('lib/id.txt',$from_id);
     $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
     $db->query("DELETE FROM `send` WHERE 1");
     $db->query("INSERT INTO `send`(`step`, `text`, `from`, `user`) VALUES ('for', '$message_id', '$from_id', 0)");
     exit(false);
 }
    #======================= lock manage =======================#
    elseif ($text == '🔒 بخش قفل ها' or $data == "manage_locks") {
        $lockSQL = $db->query("SELECT `chat_id`,`link` FROM `lock`");
        if (mysqli_num_rows($lockSQL) > 0) {
            $locksText = "☑️ به بخش (🔒 بخش قفل ها) خوش امدید\n\n🚦 راهنما :\n1 - 👁 برای مشاهده ی هر کدام روی اسم ان بزنید.\n2 - برای حذف هر کدام روی دکمه ی ( 🗑 ) بزنید\n3 - 🔗 برای تنظیمات روی دکمه ی ( ⚙️ ) بزنید\n4 - برای افزودن قفل روی دکمه ی ( ➕ افزودن قفل ) بزنید";
            $button[] = [['text' => '🗝 نام قفل', 'callback_data' => 'none'], ['text' => '⚙️ تنظیمات', 'callback_data' => 'none'], ['text' => '🗑 حذف', 'callback_data' => 'none']];
            while ($row = mysqli_fetch_assoc($lockSQL)) {
                $lock = getChat($row['chat_id'])->result;
                $name = $lock->title;
                $link = $row['link'] ?: $lock->invite_link;
                if (!$link) {
                    $name = 'دسترسی ندارد';
                    $link = 'https://t.me/username';
                }
                $button[] = [['text' => "$name", 'url' => "$link"], ['text' => '⚙️', 'callback_data' => "manage_lock_{$row['chat_id']}"], ['text' => '🗑', 'callback_data' => "remove_lock_{$row['chat_id']}"]];
            }
        } else $locksText = '❌ شما قفلی برای حذف و مشاهده ندارید لطفا از طریق دکمه ی ( ➕ افزودن قفل ) اضافه کنید.';
        $button[] = [['text' => '➕ افزودن قفل', 'callback_data' => 'addLock'], ['text' => '(🔙) برگشت', 'callback_data' => 'panel']];
        if ($data) editMessageText($from_id, $message_id, $locksText, null, json_encode(['inline_keyboard' => $button]));
        else sendMessage($from_id, $locksText, null, json_encode(['inline_keyboard' => $button]), $message_id);
    }
    #=======================#
    elseif ($data == 'addLock') {
        $random = random();
        editMessageText($from_id, $message_id, "برای افزودن قفل(کانال یا گروه) طبق مراحل زیر پیش بروید👇\n1️⃣ ربات را در (کانال یا گروه) مورد نظر ادمین کنید.\n2️⃣ دستور زیر را کپی و در (کانال یا گروه) ارسال کنید.\n<code>/lock_$random</code>\n☑️ اگر پیام شما حذف شد به معنای اضافه شدن کانال شما است.", "html", json_encode(['inline_keyboard' => [
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_locks"]]
        ]]));
        $db->query("DELETE FROM `settings` WHERE `type_id` = 'false' AND `columnTwo` = '$from_id'");
        $db->query("INSERT INTO `settings` (`type`, `type_id`, `columnOne`, `columnTwo`) VALUES ('lock', 'false', '$random', '$from_id')");
    }
    #======================= remove lock =======================#
    elseif (preg_match('/^remove_lock_(.*)/', $data, $match)) {
        answercallbackquery($callback_query_id, "✅ با موفقیت حذف شد");
        $db->query("DELETE FROM `lock` WHERE `chat_id` = '{$match[1]}'");
        $lockSQL = $db->query("SELECT `chat_id`,`link` FROM `lock`");
        if (mysqli_num_rows($lockSQL) > 0) {
            $locksText = "☑️ به بخش (🔒 بخش قفل ها) خوش امدید\n\n🚦 راهنما :\n1 - 👁 برای مشاهده ی هر کدام روی اسم ان بزنید.\n2 - برای حذف هر کدام روی دکمه ی ( 🗑 ) بزنید\n3 - 🔗 برای تنظیمات روی دکمه ی ( ⚙️ ) بزنید\n4 - برای افزودن قفل روی دکمه ی ( ➕ افزودن قفل ) بزنید";
            $button[] = [['text' => '🗝 نام قفل', 'callback_data' => 'none'], ['text' => '⚙️ تنظیمات', 'callback_data' => 'none'], ['text' => '🗑 حذف', 'callback_data' => 'none']];
            while ($row = mysqli_fetch_assoc($lockSQL)) {
                $lock = getChat($row['chat_id'])->result;
                $name = $lock->title;
                $link = $row['link'] ?: $lock->invite_link;
                if (!$link) {
                    $name = 'دسترسی ندارد';
                    $link = 'https://t.me/username';
                }
                $button[] = [['text' => "$name", 'url' => "$link"], ['text' => '⚙️', 'callback_data' => "manage_lock_{$row['chat_id']}"], ['text' => '🗑', 'callback_data' => "remove_lock_{$row['chat_id']}"]];
            }
        } else $locksText = '❌ شما قفلی برای حذف و مشاهده ندارید لطفا از طریق دکمه ی ( ➕ افزودن قفل ) اضافه کنید.';
        $button[] = [['text' => '➕ افزودن قفل', 'callback_data' => 'addLock'], ['text' => '(🔙) برگشت', 'callback_data' => 'panel']];
        editMessageText($from_id, $message_id, $locksText, null, json_encode(['inline_keyboard' => $button]));
        $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
        if ($admin_data['columnOne'] != 'main'){
        $lock = getChat($match[1])->result;
                $name = $lock->title;
                $link = $row['link'] ?: $lock->invite_link;
                if (!$link) {
                    $name = 'دسترسی ندارد';
                    $link = 'https://t.me/username';
                }
                sendMessage($owner, "❌ قفل با موفقیت حذف شد. \n\n📃 مشخصات:\n🆔 ایدی عددی قفل : {$id}\n🔗 لینک : {$link}\n📣 نام : {$name}\n🧑🏻‍💻 توسط : $from_id - $first_name");
    }}
    #=======================#
    elseif (preg_match('/^manage_lock_(.*)/', $data, $match)) {
        $lock = mysqli_fetch_assoc($db->query("SELECT * FROM `lock` WHERE `chat_id` = '{$match[1]}'"));
        $lockD = getChat($match[1])->result;
        $lock_title = $lockD->title;
        $lock_link = $lock['link'] ?: $lockD->invite_link;
        $lock_count = $lock['count'];
        $lock_time = [floor(($time - $lock['create_at']) / 3600), floor((($time - $lock['create_at']) % 3600) / 60)];
        switch ($lock['type_end']) {
            case '0':
                $lock_type = "کانال دائمی";
                $lock_end = "هیچوقت";
                break;
            case '1':
                $lock_type = "ممبری";
                break;
            case '2':
                $lock_type = "ساعتی";
                break;
        }
        editMessageText(
            $from_id,
            $message_id,
            "📋 مشخصات قفل : \n\n🔒 نام قفل : $lock_title\n🔗 لینک قفل : $lock_link\n📊 تعداد ممبر های عضو شده : $lock_count نفر\n⏰ زمان قفل : {$lock_time[0]} ساعت و {$lock_time[1]} دقیقه\n🔏 نوع قفل : $lock_type\n\n🚦 راهنما :\n1 - برا تنظیم قفل به صورت ممبری دکمه ی ( 👤 ممبری )\n2 - برای تنظیم قفل به صورت ساعتی دکمه ی ( ⏱ ساعتی )\n3 - برای تغییر لینک کانال دکمه ی ( 🔗 تغییر لینک )\n4 - برای حذف و ساخت لینک جدید برای قفل روی دکمه ی ( 🔃 بروزرسانی لینک )",
            null,
            json_encode(['inline_keyboard' => [
                [['text' => '⏱ ساعتی', 'callback_data' => 'set_lock_time_' . $match[1]], ['text' => '👤 ممبری', 'callback_data' => 'set_lock_member_' . $match[1]]],
                [['text' => '🔗 تغییر لینک', 'callback_data' => 'change_lock_' . $match[1]], ['text' => '🔃 بروزرسانی لینک', 'callback_data' => 'update_lock_' . $match[1]]],
                [['text' => '📣 تغییر نام', 'callback_data' => 'name_lock_' . $match[1]]],
                [['text' => '🔙 برگشت', 'callback_data' => 'manage_locks']],
            ]])
        );
    }
    #=======================#
    elseif (preg_match('/^update_lock_(.*)/', $data, $match)) {
        $lock = mysqli_fetch_assoc($db->query("SELECT `link` FROM `lock` WHERE `chat_id` = '{$match[1]}'"));
        $lockD = getChat($match[1])->result;
        $lock_link = $lock['link'] ?: $lockD->invite_link;
        $result = BoFile('exportChatInviteLink', ['chat_id' => $match[1]])->result;
        $lockText = str_replace($lock_link, $result, $callback_query_text);
        answercallbackquery($callback_query_id, "✅ لینک با موفقیت بروزرسانی شد.\nلینک جدید :\n$result");
        editMessageText($from_id, $message_id, $lockText, null);
        $db->query("UPDATE `lock` SET `link` = '$result' WHERE `chat_id` = '$match[1]'");
    }
    #=======================#
    elseif (preg_match('/^name_lock_(.*)/', $data, $match)) {
        editMessageText($from_id, $message_id, "📣 لطفا نام نمایشی کانال خود را که میخواهید هنگام جوین نمایش داده بشه را بین 1 تا 50 کاراکتر ارسال کنید :\nو برای گذاشتن نام اصلی آن متن ( /main ) را ارسال کنید", "markdown", json_encode(['inline_keyboard' => [[['text' => 'برگشت 🔙', 'callback_data' => 'manage_lock_' . $match[1]]]]]));
        $db->query("UPDATE `user` SET `step` = 'name_lock_{$match[1]}' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif (preg_match('/^name_lock_(.*)/', $step, $match)) {
        if (strlen($text) >= 1 and strlen($text) <= 50) {
            $name = $text;
            if ($text == '/main') {
                $text = 'نام اصلی';
                $name = NULL;
            }
            sendMessage($from_id, "✅ با موفقیت این کانال به نام ( $text ) تغییر یافت .", null, json_encode(['inline_keyboard' => [[['text' => 'برگشت 🔙', 'callback_data' => 'manage_locks']]]]), $message_id);
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ با موفقیت کانال " . getChat($match[1])->result->title . " به نام ( $text ) تغییر یافت .\n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
        } else sendMessage($from_id, "❌ بین 1 تا 50 کاراکتر ارسال کنید.");
        $db->query("UPDATE `lock` SET `name` = '$name' WHERE `chat_id` = '$match[1]'");
    }
    #=======================#
    elseif (preg_match('/^set_lock_member_(.*)/', $data, $match)) {
        editMessageText($from_id, $message_id, "👤 لطفا تعداد ممبری که میخواهید این کانال قفل باشد رو به صورت عدد بفرستید :", "markdown", json_encode(['inline_keyboard' => [[['text' => 'برگشت 🔙', 'callback_data' => 'manage_lock_' . $match[1]]]]]));
        $db->query("UPDATE `user` SET `step` = 'set_lock_member_{$match[1]}' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif (preg_match('/^set_lock_member_(.*)/', $step, $match)) {
        if (is_numeric($text)) {
            sendMessage($from_id, "✅ با موفقیت این کانال به تعداد $text ممبر قفل شد .", null, json_encode(['inline_keyboard' => [[['text' => 'برگشت 🔙', 'callback_data' => 'manage_locks']]]]), $message_id);
            $lock_link = mysqli_fetch_assoc($db->query("SELECT `link` FROM `lock` WHERE `chat_id` = '{$match[1]}'"))['link'];
            BoFile('editChatInviteLink', ['chat_id' => $match[1], 'invite_link' => $lock_link, 'member_limit' => $text, 'expire_date' => 0]);
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ با موفقیت کانال " . getChat($match[1])->result->title . " به تعداد $text ممبر قفل شد .\n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            $db->query("UPDATE `lock` SET `type_end` = '1', `end` = '$text' WHERE `chat_id` = '$match[1]'");
        } else sendMessage($from_id, "❌ تنها عدد میتوانید ارسال کنید.");
    }
    #=======================#
    elseif (preg_match('/^set_lock_time_(.*)/', $data, $match)) {
        editMessageText($from_id, $message_id, "⏱ لطفا تعداد ساعتی که میخواهید این کانال قفل باشد رو به صورت عدد بفرستید :", "markdown", json_encode(['inline_keyboard' => [[['text' => 'برگشت 🔙', 'callback_data' => 'manage_lock_' . $match[1]]]]]));
        $db->query("UPDATE `user` SET `step` = 'set_lock_time_{$match[1]}' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif (preg_match('/^set_lock_time_(.*)/', $step, $match)) {
        if (is_numeric($text)) {
            sendMessage($from_id, "✅ با موفقیت این کانال به مدت $text ساعت قفل شد .", null, json_encode(['inline_keyboard' => [[['text' => 'برگشت 🔙', 'callback_data' => 'manage_locks']]]]), $message_id);
            $lock_link = mysqli_fetch_assoc($db->query("SELECT `link` FROM `lock` WHERE `chat_id` = '{$match[1]}'"))['link'];
            BoFile('editChatInviteLink', ['chat_id' => $match[1], 'invite_link' => $lock_link, 'member_limit' => 0, 'expire_date' => $text]);
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ با موفقیت کانال " . getChat($match[1])->result->title . " به مدت $text ساعت قفل شد .\n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            $end = ($text * 3600) + $time;
            $db->query("UPDATE `lock` SET `type_end` = '2', `end` = '$end' WHERE `chat_id` = '$match[1]'");
        } else sendMessage($from_id, "❌ تنها عدد میتوانید ارسال کنید.");
    }
    #=======================#
    elseif (preg_match('/^change_lock_(.*)/', $data, $match)) {
        $lockD = mysqli_fetch_assoc($db->query("SELECT `link` FROM `lock` WHERE `chat_id` = '{$match[1]}'"));
        $lock = getChat($match[1])->result;
        $name = $lock->title;
        $link = $lockD['link'] ?: $lock->invite_link;
        sendMessage($from_id, "☑️ برای تنظیم لینک جدید برای این قفل ( $name ) لطفا لینک جدید را ارسال کنید\n🔗 لینک فعلی : $link\n\n⚠️ توجه داشته باشید که باید با  https://t.me/  شروع شود", 'html', json_encode([
            'keyboard' => [
                [['text' => "جایگزینی لینک پیشفرض ربات در قفل ✔️"]],
                [['text' => "برگشت 🔙"]]
            ], 'resize_keyboard' => true
        ]), $message_id);
        $db->query("UPDATE `user` SET `step` = 'change_lock_{$match[1]}' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif (preg_match('/^change_lock_(.*)/', $step, $match)) {
        if ($text == "جایگزینی لینک پیشفرض ربات در قفل ✔️") {
            $usernameChannel = getChat($match[1])->result->username;
            sendMessage($from_id, "✅ با موفقیت با لینک پیشفرض جایگزین شد .", null, $panel, $message_id);
            $db->query("UPDATE `lock` SET `link` = '' WHERE `chat_id` = '{$match[1]}'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
        } elseif (preg_match('/^https:\/\/t.me\/(.*)/', $text)) {
            sendMessage($from_id, "✅ با موفقیت لینک جایگزین شد .", null, $panel, $message_id);
            $db->query("UPDATE `lock` SET `link` = '{$text}' WHERE `chat_id` = '{$match[1]}'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
        } else sendMessage($from_id, "⚠️ توجه داشته باشید که باید با https://t.me/ شروع شود\nلطفا دوباره ارسال کنید", null, $back_panel, $message_id);
    }
    #======================= admin manage =======================#
    elseif ($text == '🧑🏻‍💻 بخش ادمین ها') {
        if ($admin_data['columnOne'] == 'main') {
            $adminsSQL = $db->query("SELECT * FROM `settings` WHERE `type` = 'admin' AND `columnOne` != 'main'");
            if (mysqli_num_rows($adminsSQL) > 0) {
                $adminsText = "☑️ به بخش (🧑🏻‍💻 بخش ادمین ها) خوش امدید\n\n🚦 راهنما :\n1 - 👁 برای مشاهده ی هر کدام روی اسم ان ادمین بزنید.\n2 - برای حذف هر کدام روی دکمه ی ( 🗑 ) بزنید\n3 - برای افزودن ادمین روی دکمه ی ( ➕ افزودن ادمین ) بزنید";
                $button[] = [['text' => '🧑🏻‍💻 نام ادمین', 'callback_data' => 'none'], ['text' => '🗑 حذف', 'callback_data' => 'none']];
                while ($row = mysqli_fetch_assoc($adminsSQL)) {
                    $name = getChat($row['type_id'])->result->first_name;
                    if (!$name) $name = 'یافت نشد';
                    $button[] = [['text' => "$name", 'url' => "tg://openmessage?user_id={$row['type_id']}"], ['text' => '🗑', 'callback_data' => "remove_ad_{$row['type_id']}"]];
                }
            } else $adminsText = '❌ شما ادمینی برای حذف و مشاهده ندارید لطفا از طریق دکمه ی ( ➕ افزودن ادمین ) اضافه کنید.';
            $button[] = [['text' => '➕ افزودن ادمین', 'callback_data' => 'addAdmin'], ['text' => '🔙 بازگشت', 'callback_data' => 'panel']];
            sendMessage($from_id, $adminsText, null, json_encode(['inline_keyboard' => $button]), $message_id);
        } else sendMessage($from_id, '❌ شما دسترسی به این بخش ندارید.', null, $panel, $message_id);
    }
    #=======================#
    elseif ($data == 'addAdmin') {
        sendMessage($from_id, "☑️ لطفا ایدی عددی کاربر را وارد کنید.", null, $back_panel, $message_id);
        deleteMessage($from_id, $message_id);
        $db->query("UPDATE `user` SET `step` = 'addAdmin' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == 'addAdmin') {
        $userP = mysqli_fetch_assoc($db->query("SELECT * FROM `user` WHERE `from_id` = '$text'"));
        if ($userP) {
            $name = getChat($userP['from_id'])->result->first_name;
            if (mysqli_num_rows($db->query("SELECT * FROM `settings` WHERE `type_id` = '{$userP['from_id']}' AND `type` = 'admin'")) == 0) {
                sendMessage($from_id, "✅ با موفقیت به ادمین ها اضافه شد.\n\n👤 نام کاربر : $name\n🆔 ایدی عددی کاربر : {$userP['from_id']}", null, $panel, $message_id);
                sendMessage($userP['from_id'], "✅ شما با موفقیت به ادمین های ربات اضافه شدید لطفا ربات رو استارت کنید.\n/start");
                $db->query("INSERT INTO `settings` (`type`, `type_id`, `columnOne`) VALUES ('admin', '$text', 'admin')");
                $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            } else sendMessage($from_id, "❌ کاربر از قبل ادمین ربات است. لطفا ایدی دیگری بفرستید", null, $back_panel, $message_id);
        } else sendMessage($from_id, "❌ کاربر ربات را استارت نکرده است. لطفا ایدی دیگری بفرستید", null, $back_panel, $message_id);
    }
    #=======================#
    elseif (preg_match('/^remove_ad_(.*)/', $data, $match)) {
        answercallbackquery($callback_query_id, "✅ با موفقیت حذف شد");
        sendMessage($match[1], "❌ شما از لیست ادمین ها حذف شدید لطفا استارت کنید\n/start");
        $db->query("DELETE FROM `settings` WHERE `type` = 'admin' AND `type_id` = '{$match[1]}'");
        $adminsSQL = $db->query("SELECT * FROM `settings` WHERE `type` = 'admin' AND `columnOne` != 'main'");
        if (mysqli_num_rows($adminsSQL) > 0) {
            $adminsText = "☑️ به بخش (🧑🏻‍💻 بخش ادمین ها) خوش امدید\n\n🚦 راهنما :\n1 - 👁 برای مشاهده ی هر کدام روی اسم ان ادمین بزنید.\n2 - برای حذف هر کدام روی دکمه ی ( 🗑 ) بزنید\n3 - برای افزودن ادمین روی دکمه ی ( ➕ افزودن ادمین ) بزنید";
            $button[] = [['text' => '🧑🏻‍💻 نام ادمین', 'callback_data' => 'none'], ['text' => '🗑 حذف', 'callback_data' => 'none']];
            while ($row = mysqli_fetch_assoc($adminsSQL)) {
                $name = getChat($row['type_id'])->result->first_name;
                if (!$name) $name = 'یافت نشد';
                $button[] = [['text' => "$name", 'url' => "tg://openmessage?user_id={$row['type_id']}"], ['text' => '🗑', 'callback_data' => "remove_ad_{$row['type_id']}"]];
            }
        } else $adminsText = '❌ شما ادمینی برای حذف و مشاهده ندارید لطفا از طریق دکمه ی ( ➕ افزودن ادمین ) اضافه کنید.';
        $button[] = [['text' => '➕ افزودن ادمین', 'callback_data' => 'addAdmin'], ['text' => '🔙 بازگشت', 'callback_data' => 'panel']];
        editMessageText($from_id, $message_id, $adminsText, null, json_encode(['inline_keyboard' => $button]));
    }
    #======================= manage users =======================# 
    elseif ($text == "👤 مدیریت کاربران" or $data == "manage_users") {
        sendMessage($from_id, "☑️ به بخش ( 👤 مدیریت کاربران ) خوش امدید\n\n🚦 راهنما :\n1 - 👁 برای مشاهده و تنظیم و حذف هر کدام روی اسم ان آیتم بزنید.", "html", $btn_users, $message_id);
        if ($data) deleteMessage($from_id, $message_id);
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
    }
    #======================= block user =======================#
    elseif ($data == "block_user") {
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, "▪️ لطفا ایدی عددی کاربر را وارد کنید.", "html", $back_panel, $message_id);
        $db->query("UPDATE `user` SET `step` = 'block_user' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "block_user") {
        if (is_numeric($text)) {
            $userData = mysqli_fetch_assoc($db->query("SELECT * FROM `user` WHERE `from_id` = '$text'"));
            if ($userData) {
                if ($userData['block'] == 0) {
                    $db->query("UPDATE `user` SET `block` = '1' WHERE `from_id` = '$text'");
                    $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
                    sendMessage($from_id, "✅ کاربر $text با موفقیت از ربات بلاک شد.\n\n🚦 راهنما :\n1 - 👁 برای مشاهده و تنظیم و حذف هر کدام روی اسم ان آیتم بزنید.", "html", $btn_users, $message_id);
                    $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
                    if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ کاربر $text با موفقیت از ربات بلاک شد.\n\n🧑🏻‍💻 توسط : $from_id - $first_name");
                } else sendMessage($from_id, "❌ کاربر قبلا بلاک شده است.", "html", $back_panel, $message_id);
            } else sendMessage($from_id, "❌ کاربری با این ایدی عددی وجود ندارد.", "html", $back_panel, $message_id);
        } else sendMessage($from_id, "❌ تنها عدد میتوانید ارسال کنید.", "html", $back_panel, $message_id);
    }
    #======================= unblock user =======================#
    elseif ($data == "unblock_user") {
        $blockedUsers = $db->query("SELECT * FROM `user` WHERE `block` = '1'");
        $button[] = [['text' => '👤 نام کاربر', 'callback_data' => 'none'], ['text' => '🆔 ایدی عددی', 'callback_data' => 'none'], ['text' => '🗑 حذف', 'callback_data' => 'none']];
        if (mysqli_num_rows($blockedUsers) > 0) {
            while ($row = mysqli_fetch_assoc($blockedUsers)) {
                $blockedUser = getChat($row['from_id'])->result;
                $name = $blockedUser->first_name;
                $id = $blockedUser->id;
                $username = $blockedUser->username ?: 'username';
                $link = 'https://t.me/' . $blockedUser->username;
                $button[] = [['text' => "👤 $name", 'url' => "$link"], ['text' => '🆔 ' . $row['from_id'], 'url' => "$link"], ['text' => '🗑', 'callback_data' => "unblock_user_{$row['from_id']}"]];
            }
            $button[] = [['text' => '(🔙) برگشت', 'callback_data' => 'manage_users']];
            editMessageText($from_id, $message_id, "▪️ لطفا کاربر مورد نظر را از لیست زیر انتخاب کنید", "html", json_encode(['inline_keyboard' => $button]));
        } else editMessageText($from_id, $message_id, "❌ لیست خالی است", "html", json_encode(['inline_keyboard' => [[['text' => '(🔙) برگشت', 'callback_data' => 'manage_users']]]]));
    }
    #=======================#
    elseif (preg_match('/^unblock_user_(.*)/', $data, $match)) {
        answercallbackquery($callback_query_id, "✅ کاربر با موفقیت انبلاک شد.");
        $db->query("UPDATE `user` SET `block` = '0' WHERE `from_id` = '{$match[1]}'");
        $blockedUsers = $db->query("SELECT * FROM `user` WHERE `block` = '1'");
        if (mysqli_num_rows($blockedUsers) > 0) {
            $button[] = [['text' => '👤 نام کاربر', 'callback_data' => 'none'], ['text' => '🆔 ایدی عددی', 'callback_data' => 'none'], ['text' => '🗑 حذف', 'callback_data' => 'none']];
            while ($row = mysqli_fetch_assoc($blockedUsers)) {
                $blockedUser = getChat($row['from_id'])->result;
                $name = $blockedUser->first_name;
                $id = $blockedUser->id;
                $username = $blockedUser->username ?: 'username';
                $link = 'https://t.me/' . $blockedUser->username;
                $button[] = [['text' => "👤 $name", 'url' => "$link"], ['text' => '🆔 ' . $row['from_id'], 'url' => "$link"], ['text' => '🗑', 'callback_data' => "unblock_user_{$row['from_id']}"]];
            }
            $button[] = [['text' => '(🔙) برگشت', 'callback_data' => 'manage_users']];
            editMessageText($from_id, $message_id, "▪️ لطفا کاربر مورد نظر را از لیست زیر انتخاب کنید", "html", json_encode(['inline_keyboard' => $button]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ کاربر $match[1] با موفقیت انبلاک شد.\n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else editMessageText($from_id, $message_id, "❌ لیست خالی است", "html", json_encode(['inline_keyboard' => [[['text' => '(🔙) برگشت', 'callback_data' => 'manage_users']]]]));
    }
    #======================= manage settings =======================# 
    elseif ($text == "⚙️ بخش تنظیمات" or $data == "manage_settings") {
        sendMessage($from_id, "☑️ به بخش ( ⚙️ بخش تنظیمات ) خوش امدید\n\n🚦 راهنما :\n1 - 👁 برای مشاهده و تنظیم و حذف هر کدام روی اسم ان آیتم بزنید.", "html", $btn_settings, $message_id);
        if ($data) deleteMessage($from_id, $message_id);
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
    }
    #======================= folder management =======================# 


    #======================= view folder =======================#
    elseif (preg_match('/^view_folder_(.*)/', $data, $match)) {
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '$folder_id'"));
        if (!$folder) {
            answercallbackquery($callback_query_id, "❌ پوشه یافت نشد!");
            return;
        }
        
        // دریافت مسیر پوشه
        $breadcrumb = [];
        $current_folder = $folder;
        while ($current_folder) {
            array_unshift($breadcrumb, $current_folder['name']);
            if ($current_folder['parent_id']) {
                $current_folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '{$current_folder['parent_id']}'"));
            } else {
                break;
            }
        }
        $path = "📁 " . implode(" > ", $breadcrumb);
        
        $folderText = "$path\n\n";
        $button = [];
        
        // نمایش زیرپوشه‌ها
        $subFoldersSQL = $db->query("SELECT * FROM `folders` WHERE `parent_id` = '$folder_id' ORDER BY `created_at` DESC");
        if (mysqli_num_rows($subFoldersSQL) > 0) {
            $folderText .= "📂 زیرپوشه‌ها:\n";
            while ($row = mysqli_fetch_assoc($subFoldersSQL)) {
                $subFolderCount = mysqli_num_rows($db->query("SELECT * FROM `folders` WHERE `parent_id` = '{$row['id']}'"));
                $fileCount = mysqli_num_rows($db->query("SELECT * FROM `folder_files` WHERE `folder_id` = '{$row['id']}'"));
                $button[] = [['text' => "{$row['name']} ($subFolderCount پوشه, $fileCount فایل)", 'callback_data' => "view_folder_{$row['id']}"]];
            }
        }
        
        // نمایش فایل‌ها
        $filesSQL = $db->query("SELECT ff.*, f.id as file_code, f.type, f.caption FROM `folder_files` ff JOIN `file` f ON ff.file_id = f.id WHERE ff.folder_id = '$folder_id' ORDER BY ff.created_at DESC");
        if (mysqli_num_rows($filesSQL) > 0) {
            $folderText .= "\n📎 فایل‌ها:\n";
            while ($row = mysqli_fetch_assoc($filesSQL)) {
                $fileType = doc($row['type']);
                $caption = $row['caption'] ? mb_substr($row['caption'], 0, 30) . "..." : "بدون توضیح";
                $button[] = [['text' => "📄 $fileType - $caption", 'callback_data' => "show_file_{$row['file_code']}"], ['text' => '🗑', 'callback_data' => "remove_file_{$folder_id}_{$row['file_code']}"]];
            }
        }
        
        if (mysqli_num_rows($subFoldersSQL) == 0 && mysqli_num_rows($filesSQL) == 0) {
            $folderText .= "❌ این پوشه خالی است.";
        }
        
        $button[] = [['text' => '➕ افزودن پوشه جدید', 'callback_data' => "add_folder_$folder_id"], ['text' => '📎 افزودن فایل', 'callback_data' => "add_file_$folder_id"]];
        $button[] = [['text' => '🔙 بازگشت', 'callback_data' => $folder['parent_id'] ? "view_folder_{$folder['parent_id']}" : 'manage_folders']];
        
        editMessageText($from_id, $message_id, $folderText, null, json_encode(['inline_keyboard' => $button]));
    }
    #======================= add file to folder =======================#
    elseif (preg_match('/^add_file_(.*)/', $data, $match)) {
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT `name` FROM `folders` WHERE `id` = '$folder_id'"));
        editMessageText($from_id, $message_id, "📎 افزودن فایل به پوشه: {$folder['name']}\n\n📝 لطفا کد فایل (ID) را وارد کنید:\n\n💡 نکته: کد فایل را از بخش تاریخچه اپلود یا کد پیگیری فایل دریافت کنید.", null, json_encode(['inline_keyboard' => [
            [['text' => '🔙 بازگشت', 'callback_data' => "view_folder_$folder_id"]]
        ]]));
        $db->query("UPDATE `user` SET `step` = 'add_file_$folder_id' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif (preg_match('/^add_file_(.*)/', $step, $match)) {
        $folder_id = $match[1];
        $file_id = trim($text);
        
        // بررسی وجود فایل
        $fileExists = mysqli_fetch_assoc($db->query("SELECT * FROM `file` WHERE `id` = '$file_id'"));
        if (!$fileExists) {
            sendMessage($from_id, "❌ فایل با این کد یافت نشد. لطفا کد صحیح را وارد کنید:");
            return;
        }
        
        // بررسی اینکه فایل قبلاً در این پوشه اضافه نشده باشد
        $fileInFolder = mysqli_num_rows($db->query("SELECT * FROM `folder_files` WHERE `folder_id` = '$folder_id' AND `file_id` = '$file_id'"));
        if ($fileInFolder > 0) {
            sendMessage($from_id, "❌ این فایل قبلاً در این پوشه موجود است!");
            return;
        }
        
        $db->query("INSERT INTO `folder_files` (`folder_id`, `file_id`, `created_at`) VALUES ('$folder_id', '$file_id', '$time')");
        $folder = mysqli_fetch_assoc($db->query("SELECT `name` FROM `folders` WHERE `id` = '$folder_id'"));
        $fileType = doc($fileExists['type']);
        
        sendMessage($from_id, "✅ فایل $fileType با موفقیت به پوشه «{$folder['name']}» اضافه شد!", null, json_encode(['inline_keyboard' => [
            [['text' => '📎 افزودن فایل دیگر', 'callback_data' => "add_file_$folder_id"]],
            [['text' => '🔙 بازگشت به پوشه', 'callback_data' => "view_folder_$folder_id"]]
        ]]), $message_id);
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
    }
    #======================= remove file from folder =======================#
    elseif (preg_match('/^remove_file_(.*)_(.*)/', $data, $match)) {
        $folder_id = $match[1];
        $file_id = $match[2];
        
        $db->query("DELETE FROM `folder_files` WHERE `folder_id` = '$folder_id' AND `file_id` = '$file_id'");
        answercallbackquery($callback_query_id, "✅ فایل از پوشه حذف شد.");
        
        // بازگشت به نمایش پوشه
        $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '$folder_id'"));
        
        // دریافت مسیر پوشه
        $breadcrumb = [];
        $current_folder = $folder;
        while ($current_folder) {
            array_unshift($breadcrumb, $current_folder['name']);
            if ($current_folder['parent_id']) {
                $current_folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '{$current_folder['parent_id']}'"));
            } else {
                break;
            }
        }
        $path = "📁 " . implode(" > ", $breadcrumb);
        
        $folderText = "$path\n\n";
        $button = [];
        
        // نمایش زیرپوشه‌ها
        $subFoldersSQL = $db->query("SELECT * FROM `folders` WHERE `parent_id` = '$folder_id' ORDER BY `created_at` DESC");
        if (mysqli_num_rows($subFoldersSQL) > 0) {
            $folderText .= "📂 زیرپوشه‌ها:\n";
            while ($row = mysqli_fetch_assoc($subFoldersSQL)) {
                $subFolderCount = mysqli_num_rows($db->query("SELECT * FROM `folders` WHERE `parent_id` = '{$row['id']}'"));
                $fileCount = mysqli_num_rows($db->query("SELECT * FROM `folder_files` WHERE `folder_id` = '{$row['id']}'"));
                $button[] = [['text' => "{$row['name']} ($subFolderCount پوشه, $fileCount فایل)", 'callback_data' => "view_folder_{$row['id']}"]];
            }
        }
        
        // نمایش فایل‌ها
        $filesSQL = $db->query("SELECT ff.*, f.id as file_code, f.type, f.caption FROM `folder_files` ff JOIN `file` f ON ff.file_id = f.id WHERE ff.folder_id = '$folder_id' ORDER BY ff.created_at DESC");
        if (mysqli_num_rows($filesSQL) > 0) {
            $folderText .= "\n📎 فایل‌ها:\n";
            while ($row = mysqli_fetch_assoc($filesSQL)) {
                $fileType = doc($row['type']);
                $caption = $row['caption'] ? mb_substr($row['caption'], 0, 30) . "..." : "بدون توضیح";
                $button[] = [['text' => "📄 $fileType - $caption", 'callback_data' => "show_file_{$row['file_code']}"], ['text' => '🗑', 'callback_data' => "remove_file_{$folder_id}_{$row['file_code']}"]];
            }
        }
        
        if (mysqli_num_rows($subFoldersSQL) == 0 && mysqli_num_rows($filesSQL) == 0) {
            $folderText .= "❌ این پوشه خالی است.";
        }
        
        $button[] = [['text' => '➕ افزودن پوشه جدید', 'callback_data' => "add_folder_$folder_id"], ['text' => '📎 افزودن فایل', 'callback_data' => "add_file_$folder_id"]];
        $button[] = [['text' => '🔙 بازگشت', 'callback_data' => $folder['parent_id'] ? "view_folder_{$folder['parent_id']}" : 'manage_folders']];
        
        editMessageText($from_id, $message_id, $folderText, null, json_encode(['inline_keyboard' => $button]));
    }
    #======================= edit folder =======================#
    elseif (preg_match('/^edit_folder_(.*)/', $data, $match)) {
        // بررسی دسترسی ادمین
        if (mysqli_num_rows($admin_sql) == 0) {
            answercallbackquery($callback_query_id, "❌ شما دسترسی به این عملکرد ندارید!");
            return;
        }
        
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '$folder_id'"));
        
        if ($folder) {
            editMessageText($from_id, $message_id, "✏️ ویرایش پوشه «{$folder['name']}»\n\nلطفا نام جدید برای این پوشه وارد کنید:", null, json_encode(['inline_keyboard' => [
                [['text' => '🔙 انصراف', 'callback_data' => 'panel']]
            ]]));
            $db->query("UPDATE `user` SET `step` = 'rename_folder_$folder_id' WHERE `from_id` = '$from_id'");
        } else {
            answercallbackquery($callback_query_id, "❌ پوشه یافت نشد!");
        }
    }
    #======================= process rename folder =======================#
    elseif (preg_match('/^rename_folder_(.*)/', $step, $match)) {
        // بررسی دسترسی ادمین
        if (mysqli_num_rows($admin_sql) == 0) {
            sendMessage($from_id, "❌ شما دسترسی به این عملکرد ندارید!", null, $btn_home, $message_id);
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            return;
        }
        
        $folder_id = $match[1];
        $new_name = trim($text);
        
        // بررسی خالی نبودن نام
        if (empty($new_name)) {
            sendMessage($from_id, "❌ نام پوشه نمی‌تواند خالی باشد. لطفا نام معتبری وارد کنید:");
            return;
        }
        
        // بررسی کاراکتر‌های نامعتبر
        if (preg_match('/[\/\\\\:*?"<>|]/', $new_name)) {
            sendMessage($from_id, "❌ نام پوشه نمی‌تواند شامل کاراکتر‌های / \\ : * ? \" < > | باشد. لطفا نام دیگری انتخاب کنید:");
            return;
        }
        
        if (mb_strlen($new_name, 'UTF-8') >= 1 && mb_strlen($new_name, 'UTF-8') <= 100) {
            // بررسی وجود پوشه
            $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '$folder_id'"));
            
            if (!$folder) {
                sendMessage($from_id, "❌ پوشه یافت نشد!", null, $btn_home, $message_id);
                $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
                return;
            }
            
            // بررسی تکراری نبودن نام در سطح همان والد
            $existing = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `name` = '" . mysqli_real_escape_string($db, $new_name) . "' AND `parent_id` " . ($folder['parent_id'] ? "= '{$folder['parent_id']}'" : "IS NULL") . " AND `id` != '$folder_id'"));
            
            if (!$existing) {
                $old_name = $folder['name'];
                $update_result = $db->query("UPDATE `folders` SET `name` = '" . mysqli_real_escape_string($db, $new_name) . "' WHERE `id` = '$folder_id'");
                
                if ($update_result) {
                    $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
                    
                    sendMessage($from_id, "✅ نام پوشه با موفقیت از «$old_name» به «$new_name» تغییر یافت.", null, json_encode(['inline_keyboard' => [
                        [['text' => '🔙 بازگشت به پنل', 'callback_data' => 'panel']]
                    ]]), $message_id);
                    
                    // ارسال نوتیفیکیشن به ادمین اصلی (اگر کاربر فعلی ادمین اصلی نیست)
                    $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
                    $current_admin = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'admin' AND `type_id` = '$from_id'"));
                    if ($current_admin && $current_admin['columnOne'] != 'main') {
                        sendMessage($owner, "✅ نام پوشه «$old_name» توسط $from_id - $first_name به «$new_name» تغییر یافت.");
                    }
                } else {
                    sendMessage($from_id, "❌ خطا در تغییر نام پوشه: " . mysqli_error($db) . "\nلطفا دوباره تلاش کنید:");
                    return;
                }
            } else {
                sendMessage($from_id, "❌ پوشه‌ای با این نام در همین سطح وجود دارد. لطفا نام دیگری انتخاب کنید:");
            }
        } else {
            sendMessage($from_id, "❌ نام پوشه باید بین 1 تا 100 کاراکتر باشد. لطفا دوباره تلاش کنید:");
        }
    }
    #======================= delete folder =======================#
    elseif (preg_match('/^delete_folder_(.*)/', $data, $match)) {
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT * FROM `folders` WHERE `id` = '$folder_id'"));
        
        // بررسی وجود زیرپوشه یا فایل
        $subFolderCount = mysqli_num_rows($db->query("SELECT * FROM `folders` WHERE `parent_id` = '$folder_id'"));
        $fileCount = mysqli_num_rows($db->query("SELECT * FROM `folder_files` WHERE `folder_id` = '$folder_id'"));
        
        if ($subFolderCount > 0 || $fileCount > 0) {
            editMessageText($from_id, $message_id, "⚠️ حذف پوشه «{$folder['name']}»\n\nاین پوشه شامل $subFolderCount زیرپوشه و $fileCount فایل است.\n\nآیا مطمئن هستید که می‌خواهید این پوشه و تمام محتویات آن را حذف کنید؟", null, json_encode(['inline_keyboard' => [
                [['text' => '✅ بله، حذف کن', 'callback_data' => "confirm_delete_folder_$folder_id"], ['text' => '❌ خیر', 'callback_data' => 'manage_folders']],
                [['text' => '🔙 بازگشت', 'callback_data' => 'manage_folders']]
            ]]));
        } else {
            editMessageText($from_id, $message_id, "⚠️ آیا مطمئن هستید که می‌خواهید پوشه «{$folder['name']}» را حذف کنید؟", null, json_encode(['inline_keyboard' => [
                [['text' => '✅ بله، حذف کن', 'callback_data' => "confirm_delete_folder_$folder_id"], ['text' => '❌ خیر', 'callback_data' => 'manage_folders']],
                [['text' => '🔙 بازگشت', 'callback_data' => 'manage_folders']]
            ]]));
        }
    }
    #=======================#
    elseif (preg_match('/^confirm_delete_folder_(.*)/', $data, $match)) {
        $folder_id = $match[1];
        $folder = mysqli_fetch_assoc($db->query("SELECT `name` FROM `folders` WHERE `id` = '$folder_id'"));
        
        $db->query("DELETE FROM `folders` WHERE `id` = '$folder_id'");
        $db->query("DELETE FROM `folder_files` WHERE `folder_id` = '$folder_id'");
        
        answercallbackquery($callback_query_id, "✅ پوشه «{$folder['name']}» با موفقیت حذف شد.");
        
        // بازگشت به لیست پوشه‌ها
        $foldersSQL = $db->query("SELECT * FROM `folders` WHERE `parent_id` IS NULL ORDER BY `created_at` DESC");
        $foldersText = "📁 به بخش پوشه‌سازی رسانه‌ها خوش آمدید\n\n🚦 راهنما:\n1 - برای مشاهده محتویات هر پوشه روی نام آن کلیک کنید\n2 - برای حذف پوشه روی دکمه 🗑 کلیک کنید\n3 - برای ویرایش پوشه روی دکمه ✏️ کلیک کنید\n\n";
        
        $button = [];
        if (mysqli_num_rows($foldersSQL) > 0) {
            $button[] = [['text' => 'نام پوشه', 'callback_data' => 'none'], ['text' => '✏️ ویرایش', 'callback_data' => 'none'], ['text' => '🗑 حذف', 'callback_data' => 'none']];
            while ($row = mysqli_fetch_assoc($foldersSQL)) {
                $subFolderCount = mysqli_num_rows($db->query("SELECT * FROM `folders` WHERE `parent_id` = '{$row['id']}'"));
                $fileCount = mysqli_num_rows($db->query("SELECT * FROM `folder_files` WHERE `folder_id` = '{$row['id']}'"));
                $folderInfo = "($subFolderCount پوشه, $fileCount فایل)";
                $button[] = [
                    ['text' => "{$row['name']} $folderInfo", 'callback_data' => "view_folder_{$row['id']}"],
                    ['text' => '✏️', 'callback_data' => "edit_folder_{$row['id']}"],
                    ['text' => '🗑', 'callback_data' => "delete_folder_{$row['id']}"]
                ];
            }
        } else {
            $foldersText .= "❌ هیچ پوشه‌ای وجود ندارد.";
        }
        
        $button[] = [['text' => '➕ افزودن پوشه جدید', 'callback_data' => 'add_folder_0']];
        $button[] = [['text' => '🔙 برگشت', 'callback_data' => 'panel']];
        
        editMessageText($from_id, $message_id, $foldersText, null, json_encode(['inline_keyboard' => $button]));
    }
elseif($text == "🔧 مود دانلود فایل"){
BoFile('sendMessage',[
'chat_id'=>$from_id,
'text'=>"🔸 مود اینلاین : در این مود فایل ب صورت اینلاین به کاربر تحویل داده میشود و خر بن شدن ربات را کاهش میدهد در صورت استفاده از این مود حتما دستورات زیر را انجام دهید
1- ابتدا وارد @botfather شوید
2- سپس دستور /mybots را ارسال کنید
3- از لیست نمایش داده شده ربات خود را انتخاب کنید
4- بر روی botsettings کلیک کنید
5- بر روی inline mode کلیک کنید
6- در اخر روی trun on کلیک کنید و اگر از قبل روشن بود دست به چیزی نزنید

🔸 مود معمولی : مود معمولی حالت قدیمی دانلود فایل ها هست که به صورت پیشفرض ربات بر روی این حالت قرار دارد

لطفا یک مود را انتخاب کنید 👇",
'reply_markup'=>json_encode([
'keyboard'=>[
[['text'=>"💠 مود اینلاین"],['text'=>"📄 مود معمولی"]],
[['text'=>"برگشت 🔙"]],
],
"resize_keyboard"=>true,
])
]); 
}
elseif($text == "💠 مود اینلاین"){
file_put_contents("query.txt","on");
BoFile('sendMessage',[
'chat_id'=>$from_id,
'text'=>"ذخیره شد ✅",
]);
}
elseif($text == "📄 مود معمولی"){
file_put_contents("query.txt","off");
BoFile('sendMessage',[
'chat_id'=>$from_id,
'text'=>"ذخیره شد ✅",
]);
}
    #======================= bot status =======================# 
    elseif ($data == "bot_status") {
        $bot_status = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'bot_status'"))['type_id'];
        if ($bot_status == "on") {
            $on = "✅";
            $off = "";
        } elseif ($bot_status == "off") {
            $on = "";
            $off = "✅";
        }
        editMessageText($from_id, $message_id, "بخش 🤖 وضعیت ربات\n\n🚦 راهنما : از این بخش میتوانید وضعیت ربات خودتون  رو مشخص کنید که در حالت عادی روشن هست اگر ربات رو خاموش کنید کاربران عادی دیگر نمیتوانند از ربات استفاده کنند.", "html", json_encode(['inline_keyboard' => [
            [['text' => "$off خاموش", 'callback_data' => "bot_status_off"], ['text' => "$on روشن", 'callback_data' => "bot_status_on"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
        ]]));
    }
    #=======================#
    elseif ($data == "bot_status_on") {
        $bot_status = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'bot_status'"))['type_id'];
        if ($bot_status == 'off') {
            $db->query("UPDATE `settings` SET `type_id` = 'on' WHERE `type` = 'bot_status'");
            answercallbackquery($callback_query_id, "✅ با موفقیت وضعیت ربات تغییر یافت.");
            editMessageText($from_id, $message_id, "بخش 🤖 وضعیت ربات\n\n 🚦 راهنما : از این بخش میتوانید وضعیت ربات خودتون  رو مشخص کنید که در حالت عادی روشن هست اگر ربات رو خاموش کنید کاربران عادی دیگر نمیتوانند از ربات استفاده کنند.", "html", json_encode(['inline_keyboard' => [
                [['text' => "خاموش", 'callback_data' => "bot_status_off"], ['text' => "✅ روشن", 'callback_data' => "bot_status_on"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ وضعیت ربات با موفقیت به حالت روشن تغییر یافت\n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, "❌ وضعیت ربات از قبل در این حالت بود.");
    }
    #=======================#
    elseif ($data == "bot_status_off") {
        $bot_status = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'bot_status'"))['type_id'];
        if ($bot_status == 'on') {
            $db->query("UPDATE `settings` SET `type_id` = 'off' WHERE `type` = 'bot_status'");
            answercallbackquery($callback_query_id, "✅ با موفقیت وضعیت ربات تغییر یافت.");
            editMessageText($from_id, $message_id, "بخش 🤖 وضعیت ربات\n\n 🚦 راهنما : از این بخش میتوانید وضعیت ربات خودتون  رو مشخص کنید که در حالت عادی روشن هست اگر ربات رو خاموش کنید کاربران عادی دیگر نمیتوانند از ربات استفاده کنند.", "html", json_encode(['inline_keyboard' => [
                [['text' => "✅ خاموش", 'callback_data' => "bot_status_off"], ['text' => "روشن", 'callback_data' => "bot_status_on"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ وضعیت ربات با موفقیت به حالت روشن تغییر یافت\n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, "❌ وضعیت ربات از قبل در این حالت بود.");
    }
    #======================= spam setting =======================# 
    elseif ($data == "spam_setting") {
        $spam_setting = mysqli_fetch_assoc($db->query("SELECT `columnOne`,`columnTwo` FROM `settings` WHERE `type` = 'spam_setting'"));
        editMessageText($from_id, $message_id, "بخش 🔧 بخش تنظیمات اسپم \n\nبرای تنظیم تعداد دقیقه های بلاک شدن کاربر از ربات روی دکمه ( ⚙️ تنظیم تعداد دقیقه ) \n برای گذاشتن روی حالت پیشفرض روی دکمه ( 🔃 تغییر به حالت پپیشفرض ) و برای بازگشت روی ( 🔙 بازگشت )\nبرای تنظیم تعداد پیامی که اگر ارسال کنه از ربات بلک میشه روی دکمه ( 📝 تنظیم تعداد پیام ) بزنید.", "html", json_encode(['inline_keyboard' => [
            [['text' => "⚙️ تنظیم تعداد دقیقه", 'callback_data' => "set_spamTime"], ['text' => "🔃 حالت پیشفرض دقیقه", 'callback_data' => "set_assumption"]],
            [['text' => "📝 تنظیم تعداد پیام", 'callback_data' => "set_spamLimit"], ['text' => "🔃 حالت پیشفرض تعداد پیام", 'callback_data' => "set_assumptionLimit"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
        ]]));
    }
    
    #======================= spoiler setting =======================# 
    elseif ($data == "spoiler_setting") {
        $spoiler_status = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'spoiler'"))['type_id'] ?: "inactive";
        if ($spoiler_status == "active") {
            $active = "✅";
            $inactive = "";
        } elseif ($spoiler_status == "inactive") {
            $active = "";
            $inactive = "✅";
        }
        editMessageText($from_id, $message_id, "بخش 🎬 اسپویلر ویدیو\n\n🚦 راهنما : از این بخش میتوانید وضعیت اسپویلر ویدیو را مشخص کنید. اگر فعال باشد، ویدیوها و تصاویر با اسپویلر ارسال می‌شوند و کاربر باید برای مشاهده روی آن کلیک کند.", "html", json_encode(['inline_keyboard' => [
            [['text' => "$inactive غیرفعال", 'callback_data' => "spoiler_inactive"], ['text' => "$active فعال", 'callback_data' => "spoiler_active"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
        ]]));
    }
    #=======================#
    elseif ($data == "spoiler_active") {
        $spoiler_status = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'spoiler'"))['type_id'];
        if ($spoiler_status == 'inactive') {
            $db->query("UPDATE `settings` SET `type_id` = 'active' WHERE `type` = 'spoiler'");
            answercallbackquery($callback_query_id, "✅ با موفقیت وضعیت اسپویلر ویدیو تغییر یافت.");
            editMessageText($from_id, $message_id, "بخش 🎬 اسپویلر ویدیو\n\n🚦 راهنما : از این بخش میتوانید وضعیت اسپویلر ویدیو را مشخص کنید. اگر فعال باشد، ویدیوها و تصاویر با اسپویلر ارسال می‌شوند و کاربر باید برای مشاهده روی آن کلیک کند.", "html", json_encode(['inline_keyboard' => [
                [['text' => "غیرفعال", 'callback_data' => "spoiler_inactive"], ['text' => "✅ فعال", 'callback_data' => "spoiler_active"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ وضعیت اسپویلر ویدیو با موفقیت به حالت فعال تغییر یافت\n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, "❌ وضعیت اسپویلر ویدیو از قبل در این حالت بود.");
    }
    #=======================#
    elseif ($data == "spoiler_inactive") {
        $spoiler_status = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'spoiler'"))['type_id'];
        if ($spoiler_status == 'active') {
            $db->query("UPDATE `settings` SET `type_id` = 'inactive' WHERE `type` = 'spoiler'");
            answercallbackquery($callback_query_id, "✅ با موفقیت وضعیت اسپویلر ویدیو تغییر یافت.");
            editMessageText($from_id, $message_id, "بخش 🎬 اسپویلر ویدیو\n\n🚦 راهنما : از این بخش میتوانید وضعیت اسپویلر ویدیو را مشخص کنید. اگر فعال باشد، ویدیوها و تصاویر با اسپویلر ارسال می‌شوند و کاربر باید برای مشاهده روی آن کلیک کند.", "html", json_encode(['inline_keyboard' => [
                [['text' => "✅ غیرفعال", 'callback_data' => "spoiler_inactive"], ['text' => "فعال", 'callback_data' => "spoiler_active"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ وضعیت اسپویلر ویدیو با موفقیت به حالت غیرفعال تغییر یافت\n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, "❌ وضعیت اسپویلر ویدیو از قبل در این حالت بود.");
    }
    #=======================#
    elseif ($data == "set_spamTime") {
        $spam_time = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'spam_time'"))['type_id'] ?: "2";
        deleteMessage($from_id, $message_id);
        $buttons = [[['text' =>  'برگشت 🔙']]];
        for ($i = 1; $i < 100; $i++) {
            $pi = $i + 5;
            for ($i; $i < $pi; $i++) {
                $button[] = ['text' => "$i"];
            }
            $buttons[] = $button;
            $button = [];
            $i--;
        }
        $buttons = json_encode(['keyboard' => $buttons]);
        sendMessage($from_id, "مقدار بلاک شدن : \n\n " . number_format($spam_time) . " دقیقه\n\n▪️ لطفا مقدار بلاک شدن کاربر در صورت اسپم از بات را انتخاب کنید :", "html", $buttons);
        $db->query("UPDATE `user` SET `step` = 'set_spamTime' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_spamTime" or $step == "set_assumption") {
        if (is_numeric($text) or $step == "set_assumption") {
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            sendMessage($from_id, "✅ زمان بلاک شدن فرد از ربات در صورت اسپم با موفقیت تنظیم شد.", "html", $panel, $message_id);
            sendMessage($from_id, "بخش 🔧 بخش تنظیمات اسپم \n\nبرای تنظیم تعداد دقیقه های بلاک شدن کاربر از ربات روی دکمه ( ⚙️ تنظیم تعداد دقیقه ) \n برای گذاشتن روی حالت پیشفرض روی دکمه ( 🔃 تغییر به حالت پپیشفرض ) و برای بازگشت روی ( 🔙 بازگشت )\nبرای تنظیم تعداد پیامی که اگر ارسال کنه از ربات بلک میشه روی دکمه ( 📝 تنظیم تعداد پیام ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم تعداد دقیقه", 'callback_data' => "set_spamTime"], ['text' => "🔃 حالت پیشفرض دقیقه", 'callback_data' => "set_assumption"]],
                [['text' => "📝 تنظیم تعداد پیام", 'callback_data' => "set_spamLimit"], ['text' => "🔃 حالت پیشفرض تعداد پیام", 'callback_data' => "set_assumptionLimit"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ زمان بلاک شدن فرد از ربات در صورت اسپم با موفقیت روی $text تا تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            if ($step == "set_assumption") $text == 2;
            $db->query("UPDATE `settings` SET `type_id` = '$text' WHERE `type` = 'spam_time'");
        } else sendMessage($from_id, "❌ تنها عدد میتوانید ارسال کنید", 'html', $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "set_spamLimit") {
        $spam_limit = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'spam_limit'"))['type_id'] ?: "2";
        deleteMessage($from_id, $message_id);
        $buttons = [[['text' =>  'برگشت 🔙']]];
        for ($i = 1; $i < 30; $i++) {
            $pi = $i + 5;
            for ($i; $i < $pi; $i++) {
                $button[] = ['text' => "$i"];
            }
            $buttons[] = $button;
            $button = [];
            $i--;
        }
        $buttons = json_encode(['keyboard' => $buttons]);
        sendMessage($from_id, "تعداد پیام رگباری در 3 ثانیه برای بلاک شدن : \n\n " . number_format($spam_limit) . " تا\n\n▪️ لطفا تعداد پیامی که اگر کاربر در 3 ثانیه ارسال کنه بلاک میشه رو وارد کنید :", "html", $buttons);
        $db->query("UPDATE `user` SET `step` = 'set_spamLimit' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_spamLimit" or $step == "set_assumptionLimit") {
        if (is_numeric($text) or $step == "set_assumptionLimit") {
            sendMessage($from_id, "بخش 🔧 بخش تنظیمات اسپم \n\nبرای تنظیم تعداد دقیقه های بلاک شدن کاربر از ربات روی دکمه ( ⚙️ تنظیم تعداد دقیقه ) \n برای گذاشتن روی حالت پیشفرض روی دکمه ( 🔃 تغییر به حالت پپیشفرض ) و برای بازگشت روی ( 🔙 بازگشت )\nبرای تنظیم تعداد پیامی که اگر ارسال کنه از ربات بلک میشه روی دکمه ( 📝 تنظیم تعداد پیام ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم تعداد دقیقه", 'callback_data' => "set_spamTime"], ['text' => "🔃 حالت پیشفرض دقیقه", 'callback_data' => "set_assumption"]],
                [['text' => "📝 تنظیم تعداد پیام", 'callback_data' => "set_spamLimit"], ['text' => "🔃 حالت پیشفرض تعداد پیام", 'callback_data' => "set_assumptionLimit"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ تعداد پیام برای بلاک شدن فرد از ربات در صورت اسپم با موفقیت روی $text تا تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            if ($step == "set_assumptionLimit") $text == 7;
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            $db->query("UPDATE `settings` SET `type_id` = '$text' WHERE `type` = 'spam_limit'");
        } else sendMessage($from_id, "❌ تنها عدد میتوانید ارسال کنید", 'html', $back_panel, $message_id);
    }
    #======================= start text =======================#
    elseif ($data == "start_text") {
        $start_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_text'"))['columnOne'] ?: "متن استارت تنظیم نشده است...";
        editMessageText($from_id, $message_id, "بخش 📝 تنظیم متن استارت\n\nمتن استارت : \n\n <code>$start_text</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف متن ) که با این کار متن پیش فرض نمایش داده میشه و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
            [['text' => "⚙️ تنظیم متن", 'callback_data' => "set_start_text"], ['text' => "🗑 حذف متن", 'callback_data' => "del_start_text"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
        ]]));
    }
    #=======================#
    elseif ($data == "set_start_text") {
        $start_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_text'"))['columnOne'] ?: "متن استارتی ثبت نشده است ...";
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, "متن استارت قبلی : \n\n <code>$start_text</code> \n\n▪️ لطفا متن  خود را ارسال کنید :\n( تنها متن میتوانید ارسال کنید ; متن میتواند در قالب html نیز باشد و همچنین برای تنظیم متن قبلی متن ( /main ) را ارسال کنید.)\n\n❗️  برای استفاده از اطلاعات کاربر از کد های زیر استفاده کنید :\n🔢 <code>#id#</code> : (ایدی عددی کاربر)\n👤 <code>#name#</code> : (نام کاربر)\n🆔 <code>#username#</code> : (نام کاربری کاربر)", "html", $back_panel);
        $db->query("UPDATE `user` SET `step` = 'set_start_text' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_start_text") {
        if ($text) {
            $set = $text;
            if ($text == '/main') {
                $text = 'متن پیشفرض';
                $set = '';
            }
            $db->query("UPDATE `settings` SET `columnOne` = '$set' WHERE `type` = 'start_text'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            sendMessage($from_id, "✅ متن با موفقیت تنظیم شد\nمتن استارت : \n\n <code>$text</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف متن ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم متن", 'callback_data' => "set_start_text"], ['text' => "🗑 حذف متن", 'callback_data' => "del_start_text"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ متن استارت با موفقیت تنظیم شد \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else sendMessage($from_id, "❌ تنها متن میتوانید ارسال کنید", "html", $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "del_start_text") {
        $start_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_text'"))['columnOne'];
        if ($start_text) {
            $db->query("UPDATE `settings` SET `columnOne` = '' WHERE `type` = 'start_text'");
            answercallbackquery($callback_query_id, "✅ متن استارت با موفقیت حذف شد.");
            $noCaption = "✅";
            editMessageText($from_id, $message_id, "متن استارت : \n\n <code>متن استارت تنظیم نشده است...</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف متن ) که با این کار متن پیش فرض نمایش داده میشه و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم متن", 'callback_data' => "set_start_text"], ['text' => "🗑 حذف متن", 'callback_data' => "del_start_text"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ متن استارت با موفقیت حذف شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else  answercallbackquery($callback_query_id, "❌ متن استارت تنظیم نشده است");
    }
    #======================= hyperlink =======================#
    elseif ($data == "hyperlink") {
        $hyperlink = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'hyperlink'"))['columnOne'] ?: "متن استارت تنظیم نشده است...";
        editMessageText($from_id, $message_id, "بخش 🔗 تنظیم متن هایپرلینک\n\nمتن هایپرلینک : \n\n <code>$hyperlink</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف متن ) که با این کار متن هایپرلینک پیش فرض نمایش داده میشه و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
            [['text' => "⚙️ تنظیم متن", 'callback_data' => "set_hyperlink"], ['text' => "🗑 حذف متن", 'callback_data' => "del_hyperlink"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
        ]]));
    }
    #=======================#
    elseif ($data == "set_hyperlink") {
        $hyperlink = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'hyperlink'"))['columnOne'] ?: "متن هایپرلینکی ثبت نشده است ...";
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, "متن هایپرلینک قبلی : \n\n <code>$hyperlink</code> \n\n▪️ لطفا متن  خود را ارسال کنید : \nهمچنین برای تنظیم متن قبلی متن ( /main ) را ارسال کنید.", "html", $back_panel);
        $db->query("UPDATE `user` SET `step` = 'set_hyperlink' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_hyperlink") {
        if ($text) {
            $set = $text;
            if ($text == '/main') {
                $text = 'متن پیشفرض';
                $set = '';
            }
            $db->query("UPDATE `settings` SET `columnOne` = '$set' WHERE `type` = 'hyperlink'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            sendMessage($from_id, "✅ متن با موفقیت تنظیم شد.\nمتن هایپرلینک : \n\n <code>$text</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف متن ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم متن", 'callback_data' => "set_hyperlink"], ['text' => "🗑 حذف متن", 'callback_data' => "del_hyperlink"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ متن هایپرلینک با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else sendMessage($from_id, "❌ تنها متن میتوانید ارسال کنید", "html", $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "del_hyperlink") {
        $hyperlink = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'caption'"))['columnOne'];
        if ($hyperlink) {
            $db->query("UPDATE `settings` SET `columnOne` = '' WHERE `type` = 'hyperlink'");
            answercallbackquery($callback_query_id, "✅ متن هایپرلینک با موفقیت حذف شد.");
            $noCaption = "✅";
            editMessageText($from_id, $message_id, "متن هایپرلینک : \n\n <code>متن هایپرلینک تنظیم نشده است...</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف متن ) که با این کار متن پیش فرض نمایش داده میشه و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم متن", 'callback_data' => "set_hyperlink"], ['text' => "🗑 حذف متن", 'callback_data' => "del_hyperlink"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ متن هایپرلینک با موفقیت حذف شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else  answercallbackquery($callback_query_id, "❌ متن هایپرلینک تنظیم نشده است");
    }
    #======================= lock text =======================#
    elseif ($data == "lock_text") {
        $lock_text = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'lock_text'"))['columnOne'] ?: "متن استارت تنظیم نشده است...";
        editMessageText($from_id, $message_id, "بخش 🔒 تنظیم متن جوین\n\nمتن جوین : \n\n <code>$lock_text</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف متن ) که با این کار متن جوین پیش فرض نمایش داده میشه و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
            [['text' => "⚙️ تنظیم متن", 'callback_data' => "set_lock_text"], ['text' => "🗑 حذف متن", 'callback_data' => "del_lock_text"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
        ]]));
    }
    #=======================#
    elseif ($data == "set_lock_text") {
        $lock_text = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'lock_text'"))['columnOne'] ?: "متن ری ثبت نشده است ...";
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, "متن جوین قبلی : \n\n <code>$lock_text</code> \n\n▪️ لطفا متن  خود را ارسال کنید :\n\n( تنها متن میتوانید ارسال کنید ; متن میتواند در قالب html نیز باشد  و همچنین برای تنظیم متن قبلی متن ( /main ) را ارسال کنید.)", "html", $back_panel);
        $db->query("UPDATE `user` SET `step` = 'set_lock_text' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_lock_text") {
        if ($text) {
            $set = $text;
            if ($text == '/main') {
                $text = 'متن پیشفرض';
                $set = '';
            }
            $db->query("UPDATE `settings` SET `columnOne` = '$set' WHERE `type` = 'lock_text'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            sendMessage($from_id, "✅ متن با موفقیت تنظیم شد.\nمتن جوین : \n\n <code>$text</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف متن ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم متن", 'callback_data' => "set_lock_text"], ['text' => "🗑 حذف متن", 'callback_data' => "del_lock_text"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ متن جوین با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else sendMessage($from_id, "❌ تنها متن میتوانید ارسال کنید", "html", $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "del_lock_text") {
        $lock_text = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'caption'"))['columnOne'];
        if ($lock_text) {
            $db->query("UPDATE `settings` SET `columnOne` = '' WHERE `type` = 'lock_text'");
            answercallbackquery($callback_query_id, "✅ متن جوین با موفقیت حذف شد.");
            $noCaption = "✅";
            editMessageText($from_id, $message_id, "متن جوین : \n\n <code>متن جوین تنظیم نشده است...</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف متن ) که با این کار متن پیش فرض نمایش داده میشه و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم متن", 'callback_data' => "set_lock_text"], ['text' => "🗑 حذف متن", 'callback_data' => "del_lock_text"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ متن جوین با موفقیت حذف شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else  answercallbackquery($callback_query_id, "❌ متن جوین تنظیم نشده است");
    }
    #======================= show like =======================# 
    elseif ($data == "show_like") {
        $show_like = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_like'"))['type_id'];
        if ($show_like == "active") {
            $active = "✅";
            $inactive = "";
        } elseif ($show_like == "inactive") {
            $active = "";
            $inactive = "✅";
        }
        editMessageText($from_id, $message_id, "بخش ❤️ نمایش لایک \n\n🚦 راهنما : از این بخش میتوانید تنظیم کنید که ایا نمایش لایک زیر پست ها فعال باشد یا خیر که در حالت عادی فعال است و هرکسی که خواست میتواند پست های مورد پسند خود را لایک کند.", "html", json_encode(['inline_keyboard' => [
            [['text' => "$inactive غیر فعال", 'callback_data' => "show_like_inactive"], ['text' => "$active فعال", 'callback_data' => "show_like_active"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
        ]]));
    }
    #=======================#
    elseif ($data == "show_like_active") {
        $show_like = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_like'"))['type_id'];
        if ($show_like == 'inactive') {
            $db->query("UPDATE `settings` SET `type_id` = 'active' WHERE `type` = 'show_like'");
            answercallbackquery($callback_query_id, "✅ با موفقیت نمایش لایک زیر پست ها فعال شد.");
            editMessageText($from_id, $message_id, "بخش ❤️ نمایش لایک \n\n🚦 راهنما : از این بخش میتوانید تنظیم کنید که ایا نمایش لایک زیر پست ها فعال باشد یا خیر که در حالت عادی فعال است و هرکسی که خواست میتواند پست های مورد پسند خود را لایک کند.", "html", json_encode(['inline_keyboard' => [
                [['text' => "غیر فعال", 'callback_data' => "show_like_inactive"], ['text' => "✅ فعال", 'callback_data' => "show_like_active"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ با موفقیت نمایش لایک زیر پست ها فعال شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, "❌ نمایش لایک از قبل فعال بود.");
    }
    #=======================#
    elseif ($data == "show_like_inactive") {
        $show_like = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_like'"))['type_id'];
        if ($show_like == 'active') {
            $db->query("UPDATE `settings` SET `type_id` = 'inactive' WHERE `type` = 'show_like'");
            answercallbackquery($callback_query_id, "✅ با موفقیت نمایش لایک زیر پست ها غیر فعال شد.");
            editMessageText($from_id, $message_id, "بخش ❤️ نمایش لایک \n\n🚦 راهنما : از این بخش میتوانید تنظیم کنید که ایا نمایش لایک زیر پست ها فعال باشد یا خیر که در حالت عادی فعال است و هرکسی که خواست میتواند پست های مورد پسند خود را لایک کند.", "html", json_encode(['inline_keyboard' => [
                [['text' => "✅ غیر فعال", 'callback_data' => "show_like_inactive"], ['text' => "فعال", 'callback_data' => "show_like_active"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅با موفقیت نمایش لایک زیر پست ها غیر فعال شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, "❌ نمایش لایک از قبل غیر فعال بود.");
    }
    #======================= show seen =======================# 
    elseif ($data == "show_seen") {
        $show_seen = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_seen'"))['type_id'];
        if ($show_seen == "active") {
            $active = "✅";
            $inactive = "";
        } elseif ($show_seen == "inactive") {
            $active = "";
            $inactive = "✅";
        }
        editMessageText($from_id, $message_id, "بخش 👁‍🗨 نمایش تعداد سین \n\n🚦 راهنما : از این بخش میتوانید تنظیم کنید که ایا نمایش تعداد سین زیر پست ها فعال باشد یا خیر که در حالت عادی فعال است.", "html", json_encode(['inline_keyboard' => [
            [['text' => "$inactive غیر فعال", 'callback_data' => "show_seen_inactive"], ['text' => "$active فعال", 'callback_data' => "show_seen_active"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
        ]]));
    }
    #=======================#
    elseif ($data == "show_seen_active") {
        $show_seen = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_seen'"))['type_id'];
        if ($show_seen == 'inactive') {
            $db->query("UPDATE `settings` SET `type_id` = 'active' WHERE `type` = 'show_seen'");
            answercallbackquery($callback_query_id, "✅ با موفقیت نمایش تعداد سین زیر پست ها فعال شد.");
            editMessageText($from_id, $message_id, "بخش 👁‍🗨 نمایش تعداد سین \n\n🚦 راهنما : از این بخش میتوانید تنظیم کنید که ایا نمایش تعداد سین زیر پست ها فعال باشد یا خیر که در حالت عادی فعال است.", "html", json_encode(['inline_keyboard' => [
                [['text' => "غیر فعال", 'callback_data' => "show_seen_inactive"], ['text' => "✅ فعال", 'callback_data' => "show_seen_active"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ با موفقیت نمایش تعداد سین زیر پست ها فعال شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, "❌ نمایش تعداد سین از قبل فعال بود.");
    }
    #=======================#
    elseif ($data == "show_seen_inactive") {
        $show_seen = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'show_seen'"))['type_id'];
        if ($show_seen == 'active') {
            $db->query("UPDATE `settings` SET `type_id` = 'inactive' WHERE `type` = 'show_seen'");
            answercallbackquery($callback_query_id, "✅ با موفقیت نمایش تعداد سین زیر پست ها غیر فعال شد.");
            editMessageText($from_id, $message_id, "بخش 👁‍🗨 نمایش تعداد سین \n\n🚦 راهنما : از این بخش میتوانید تنظیم کنید که ایا نمایش تعداد سین زیر پست ها فعال باشد یا خیر که در حالت عادی فعال است.", "html", json_encode(['inline_keyboard' => [
                [['text' => "✅ غیر فعال", 'callback_data' => "show_seen_inactive"], ['text' => "فعال", 'callback_data' => "show_seen_active"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_settings"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($admin, "✅ با موفقیت نمایش تعداد سین زیر پست ها غیر فعال شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, "❌ نمایش تعداد سین از قبل غیر فعال بود.");
    }
    #======================= manage ads =======================# 
    elseif ($text == "📣 بخش تبلیغات" or $data == "manage_ads") {
        sendMessage($from_id, "☑️ به بخش ( 📣 بخش تبلیغات ) خوش امدید\n\n🚦 راهنما :\n1 - 👁 برای مشاهده و تنظیم و حذف هر کدام روی اسم ان آیتم بزنید.", "html", $btn_ads, $message_id);
        if ($data) deleteMessage($from_id, $message_id);
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
    }
    #======================= post ads =======================# 
    elseif ($data == "post_ads") {
        $post_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'post_ads'"))['columnOne'];
        $btns = explode("\n", "$post_ads");
        for ($i = 0; $i < count($btns); $i += 2) $button[] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
        if ($post_ads) sendMessage($from_id, "نمونه دکمه های تنظیم شده : \n\n<code>$post_ads</code>", 'html', json_encode(['inline_keyboard' => $button]));
        else sendMessage($from_id, "دکمه ای تنظیم نشده است ...");
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, "بخش 🟩 تبلیغ کانال زیر پست (دکمه شیشه ای) \n\n🚦 راهنما : از این بخش میتوانید دکمه های تبلیغ نمایش داده شده در زیر پست هارو مدیریت کنید. توجه کنید که اگر مشکلی در نمایش دکمه ها بوجود اومد از دکمه ی ( 🗑 حذف دکمه ها ) استفاده کنید. .", "html", json_encode(['inline_keyboard' => [
            [['text' => "⚙️ تنظیم دکمه ها", 'callback_data' => "set_post_ads"], ['text' => "🗑 حذف دکمه ها", 'callback_data' => "del_post_ads"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
        ]]));
    }
    #=======================#
    elseif ($data == "set_post_ads") {
        $post_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'post_ads'"))['columnOne'] ?: "متن دکمه ای ثبت نشده است ...";
        sendMessage($from_id, "متن دکمه های قبلی : \n\n <code>$post_ads</code> \n\n▪️ دکمه های شیشه ای را با فرمتی که در زیر بیان شده است ارسال کنید.\nشما باید در یک خط متن دکمه را بنویسید و در خط بعد باید لینک آن را بنویسید.\n❕برای مثال:\n<code>ربات\nhttps://t.me/BoFileIRBot\nکانال ما\nhttps://t.me/BoFile</code>\n\n⚠️ نکته مهم:\nلینک های شما باید با http:// یا https:// شروع شوند.", "html", $back_panel);
        deleteMessage($from_id, $message_id);
        $db->query("UPDATE `user` SET `step` = 'set_post_ads' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_post_ads") {
        if ($text) {
            $btns = explode("\n", "$text");
            for ($i = 0; $i < count($btns); $i += 2) $button[] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
            $db->query("UPDATE `settings` SET `columnOne` = '$text' WHERE `type` = 'post_ads'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            sendMessage($from_id, "نمونه دکمه های تنظیم شده : \n\n<code>$post_ads</code>", 'html', json_encode(['inline_keyboard' => $button]));
            sendMessage($from_id, "✅ دکمه ها با موفقیت تنظیم شد \n\n🚦 راهنما : از این بخش میتوانید دکمه های تبلیغ نمایش داده شده در زیر پست هارو مدیریت کنید. توجه کنید که اگر مشکلی در نمایش دکمه ها بوجود اومد از دکمه ی ( 🗑 حذف دکمه ها ) استفاده کنید. .", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم دکمه ها", 'callback_data' => "set_post_ads"], ['text' => "🗑 حذف دکمه ها", 'callback_data' => "del_post_ads"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ دکمه ها با موفقیت تنظیم شد . \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else sendMessage($from_id, "❌ تنها متن میتوانید ارسال کنید", "html", $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "del_post_ads") {
        $post_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'post_ads'"))['columnOne'];
        if ($post_ads) {
            $db->query("UPDATE `settings` SET `columnOne` = '' WHERE `type` = 'post_ads'");
            answercallbackquery($callback_query_id, "✅ دکمه های زیر پست با موفقیت حذف شد.");
            editMessageText($from_id, $message_id, "دکمه های زیر پست : \n\n <code>دکمه های زیر پست تنظیم نشده است...</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم دکمه ها ) ، برای حذف روی دکمه ( 🗑 حذف دکمه ها ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم دکمه ها", 'callback_data' => "set_post_ads"], ['text' => "🗑 حذف دکمه ها", 'callback_data' => "del_post_ads"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ دکمه های زیر پست با موفقیت حذف شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else  answercallbackquery($callback_query_id, "❌ دکمه های زیر پست تنظیم نشده است");
    }
    #======================= start ads =======================# 
    elseif ($data == "start_ads") {
        $start_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_ads'"));
        $btns = explode("\n", $start_ads['columnOne']);
        for ($i = 0; $i < count($btns); $i += 2) $button[] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
        if ($start_ads['columnOne'] or $start_ads['columnTwo']) sendMessage($from_id, "تبلیغ : \n\n" . $start_ads['columnTwo'], 'html', json_encode(['inline_keyboard' => $button]));
        else sendMessage($from_id, "دکمه ای تنظیم نشده است ...");
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, "بخش 📣 تبلیغ بعد از پیام استارت \n\n🚦 راهنما : از این بخش میتوانید دکمه های تبلیغ نمایش داده شده در زیر  پیام تبلیغ مدیریت کنید. توجه کنید که اگر مشکلی در نمایش دکمه ها بوجود اومد از دکمه ی ( 🗑 حذف هردو ) استفاده کنید. .", "html", json_encode(['inline_keyboard' => [
            [['text' => "⚙️ تنظیم دکمه ها", 'callback_data' => "set_start_ads"], ['text' => "⚙️ تنظیم متن", 'callback_data' => "set_set_start_ads_txt"]],
            [['text' => "🗑 حذف هردو", 'callback_data' => "del_start_ads"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
        ]]));
    }
    #=======================#
    elseif ($data == "set_start_ads") {
        $start_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_ads'"))['columnOne'] ?: "متن دکمه ای ثبت نشده است ...";
        sendMessage($from_id, "متن دکمه های قبلی : \n\n <code>$start_ads</code> \n\n▪️ دکمه های شیشه ای را با فرمتی که در زیر بیان شده است ارسال کنید.\nشما باید در یک خط متن دکمه را بنویسید و در خط بعد باید لینک آن را بنویسید.\n❕برای مثال:\n<code>ربات\nhttps://t.me/BoFileIRBot\nکانال ما\nhttps://t.me/BoFile</code>\n\n⚠️ نکته مهم:\nلینک های شما باید با http:// یا https:// شروع شوند.", "html", $back_panel);
        deleteMessage($from_id, $message_id);
        $db->query("UPDATE `user` SET `step` = 'set_start_ads' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_start_ads") {
        if ($text) {
            $btns = explode("\n", "$text");
            for ($i = 0; $i < count($btns); $i += 2) $button[] = [['text' => $btns[$i], 'url' => $btns[$i + 1]]];
            $db->query("UPDATE `settings` SET `columnOne` = '$text' WHERE `type` = 'start_ads'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            sendMessage($from_id, "نمونه دکمه های تنظیم شده : \n\n<code>$text</code>", 'html', json_encode(['inline_keyboard' => $button]));
            sendMessage($from_id, "✅ دکمه های تبلیغ بعد پیام استارت با موفقیت تنظیم شد. \n\n🚦 راهنما : از این بخش میتوانید دکمه های تبلیغ نمایش داده شده در زیر  پیام تبلیغ هارو مدیریت کنید. توجه کنید که اگر مشکلی در نمایش دکمه ها بوجود اومد از دکمه ی ( 🗑 حذف هردو ) استفاده کنید. .", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم دکمه ها", 'callback_data' => "set_start_ads"], ['text' => "⚙️ تنظیم متن", 'callback_data' => "set_set_start_ads_txt"]],
                [['text' => "🗑 حذف هردو", 'callback_data' => "del_start_ads"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ دکمه های تبلیغ بعد پیام استارت با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else sendMessage($from_id, "❌ تنها متن میتوانید ارسال کنید", "html", $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "set_set_start_ads_txt") {
        $start_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_ads'"))['columnTwo'] ?: "متنی ثبت نشده است ...";
        sendMessage($from_id, "متن قبلی : \n\n <code>$start_ads</code> \n\n▪️ لطفا متن خود را ارسال کنید :\n( تنها متن میتوانید ارسال کنید ; متن میتواند در قالب html نیز باشد )\n❗️ برای تنظیم متن پیشفرض میتوانید <code>null</code> رو ارسال کنید.", "html", $back_panel);
        deleteMessage($from_id, $message_id);
        $db->query("UPDATE `user` SET `step` = 'set_set_start_ads_txt' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_set_start_ads_txt") {
        if ($text) {
            $db->query("UPDATE `settings` SET `columnTwo` = '$text' WHERE `type` = 'start_ads'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            sendMessage($from_id, "متن تنظیم شده : \n\n<code>$text</code>", 'html');
            sendMessage($from_id, "✅ متن تبلیغ بعد پیام استارت با موفقیت تنظیم شد. \n\n🚦 راهنما : از این بخش میتوانید دکمه های تبلیغ نمایش داده شده در زیر  پیام تبلیغ هارو مدیریت کنید. توجه کنید که اگر مشکلی در نمایش دکمه ها بوجود اومد از دکمه ی ( 🗑 حذف هردو ) استفاده کنید. .", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم دکمه ها", 'callback_data' => "set_start_ads"], ['text' => "⚙️ تنظیم متن", 'callback_data' => "set_set_start_ads_txt"]],
                [['text' => "🗑 حذف هردو", 'callback_data' => "del_start_ads"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ متن تبلیغ بعد پیام استارت با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            if ($text == 'null') $text = '';
            $db->query("UPDATE `settings` SET `columnTwo` = '$text' WHERE `type` = 'start_ads'");
        } else sendMessage($from_id, "❌ تنها متن میتوانید ارسال کنید", "html", $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "del_start_ads") {
        $start_ads = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'start_ads'"));
        if ($start_ads['columnOne'] or $start_ads['columnTwo']) {
            $db->query("UPDATE `settings` SET `columnOne` = '', `columnTwo` = '' WHERE `type` = 'start_ads'");
            answercallbackquery($callback_query_id, "✅ پیام تبلیغ بعد از استارت با موفقیت حذف شد.");
            editMessageText($from_id, $message_id, "برای تنظیم دکمه ها روی دکمه ( ⚙️ تنظیم دکمه ها ) ، برای تنظیم متن تبلیغ روی ( ⚙️ تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف هردو ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم دکمه ها", 'callback_data' => "set_start_ads"], ['text' => "⚙️ تنظیم متن", 'callback_data' => "set_set_start_ads_txt"]],
                [['text' => "🗑 حذف هردو", 'callback_data' => "del_start_ads"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ پیام تبلیغ بعد از استارت با موفقیت حذف شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else  answercallbackquery($callback_query_id, "❌ پیام تبلیغ تنظیم نشده است");
    }
    #======================= caption =======================# 
    elseif ($data == "show_caption") {
        $caption_sql = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'caption'"))['columnOne'] ?: "کپشن تنظیم نشده است...";
        $caption_set = mysqli_fetch_assoc($db->query("SELECT `columnTwo` FROM `settings` WHERE `type` = 'caption'"))['columnTwo'];
        if ($caption_set == "AllFiles") {
            $All = "✅";
            $noCaption = "";
        } elseif ($caption_set == "noAllFiles") {
            $All = "";
            $noCaption = "✅";
        }
        editMessageText($from_id, $message_id, "متن کپشن : \n\n <code>$caption_sql</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم کپشن ) ، برای حذف روی دکمه ( 🗑 حذف کپشن ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
            [['text' => "همه ی اپلود شده ها $All", 'callback_data' => "set_allCaption"], ['text' => "اپلود شده های بدون کپشن $noCaption", 'callback_data' => "set_noCaption"]],
            [['text' => "⚙️ تنظیم کپشن", 'callback_data' => "set_caption"], ['text' => "🗑 حذف کپشن", 'callback_data' => "del_caption"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
        ]]));
    }
    #=======================#
    elseif ($data == "del_caption") {
        $caption_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnOne'];
        if ($caption_sql) {
            $db->query("UPDATE `settings` SET `columnOne` = '' WHERE `type` = 'caption'");
            answercallbackquery($callback_query_id, "✅ کپشن پست ها با موفقیت حذف شد.");

            $caption_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnOne'] ?: "کپشن تنظیم نشده است...";
            $caption_set = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnTwo'];
            if ($caption_set == "AllFiles") {
                $All = "✅";
                $noCaption = "";
            } elseif ($caption_set == "noAllFiles") {
                $All = "";
                $noCaption = "✅";
            }

            editMessageText($from_id, $message_id, "متن کپشن : \n\n <code>$caption_sql</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم کپشن ) ، برای حذف روی دکمه ( 🗑 حذف کپشن ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "همه ی اپلود شده ها $All", 'callback_data' => "set_allCaption"], ['text' => "اپلود شده های بدون کپشن $noCaption", 'callback_data' => "set_noCaption"]],
                [['text' => "⚙️ تنظیم کپشن", 'callback_data' => "set_caption"], ['text' => "🗑 حذف کپشن", 'callback_data' => "del_caption"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ کپشن پست ها با موفقیت حذف شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else  answercallbackquery($callback_query_id, "❌ کپشن تنظیم نشده است");
    }
    #=======================#
    elseif ($data == "set_caption") {
        $caption_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnOne'] ?: "کپشنی ثبت نشده است ...";

        deleteMessage($from_id, $message_id);
        sendMessage($from_id, "کپشن قبلی : \n\n <code>$caption_sql</code> \n\n▪️ لطفا کپشن خود را ارسال کنید :\n( تنها متن میتوانید ارسال کنید ; متن میتواند در قالب html نیز باشد )", "html", $back_panel);
        $db->query("UPDATE `user` SET `step` = 'set_caption' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_caption") {
        if ($text) {
            $db->query("UPDATE `settings` SET `columnOne` = '$text' WHERE `type` = 'caption'");
            $caption_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnOne'] ?: "کپشن تنظیم نشده است...";
            $caption_set = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnTwo'];
            if ($caption_set == "AllFiles") {
                $All = "✅";
                $noCaption = "";
            } elseif ($caption_set == "noAllFiles") {
                $All = "";
                $noCaption = "✅";
            }

            sendMessage($from_id, "✅ کپشن با موفقیت تنظیم شد", "html", $panel, $message_id);
            sendMessage($from_id, "متن کپشن : \n\n <code>$caption_sql</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم کپشن ) ، برای حذف روی دکمه ( 🗑 حذف کپشن ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "همه ی اپلود شده ها $All", 'callback_data' => "set_allCaption"], ['text' => "اپلود شده های بدون کپشن $noCaption", 'callback_data' => "set_noCaption"]],
                [['text' => "⚙️ تنظیم کپشن", 'callback_data' => "set_caption"], ['text' => "🗑 حذف کپشن", 'callback_data' => "del_caption"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ کپشن پست ها با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
        } else sendMessage($from_id, "❌ تنها متن میتوانید ارسال کنید", "html", $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "set_allCaption") {
        $caption_set = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnTwo'];
        if ($caption_set != 'AllFiles') {
            $db->query("UPDATE `settings` SET `columnTwo` = 'AllFiles'  WHERE `type` = 'caption'");
            $caption_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnOne'] ?: "کپشن تنظیم نشده است...";
            editMessageText($from_id, $message_id, "متن کپشن : \n\n <code>$caption_sql</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم کپشن ) ، برای حذف روی دکمه ( 🗑 حذف کپشن ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "همه ی اپلود شده ها ✅", 'callback_data' => "set_allCaption"], ['text' => "اپلود شده های بدون کپشن", 'callback_data' => "set_noCaption"]],
                [['text' => "⚙️ تنظیم کپشن", 'callback_data' => "set_caption"], ['text' => "🗑 حذف کپشن", 'callback_data' => "del_caption"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]

            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ کپشن پست ها به اعمال روی همه پست ها با موفقیت تغییر یافت. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, '❌ از قبل روی این گزینه فعال بود.');
    }
    #=======================#
    elseif ($data == "set_noCaption") {
        $caption_set = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnTwo'];
        if ($caption_set != 'noAllFiles') {
            $db->query("UPDATE `settings` SET `columnTwo` = 'noAllFiles'  WHERE `type` = 'caption'");
            $caption_sql = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'caption'"))['columnOne'] ?: "کپشن تنظیم نشده است...";
            editMessageText($from_id, $message_id, "متن کپشن : \n\n <code>$caption_sql</code> \n\n برای تنظیم روی دکمه ( ⚙️ تنظیم کپشن ) ، برای حذف روی دکمه ( 🗑 حذف کپشن ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "همه ی اپلود شده ها", 'callback_data' => "set_allCaption"], ['text' => "اپلود شده های بدون کپشن ✅", 'callback_data' => "set_noCaption"]],
                [['text' => "⚙️ تنظیم کپشن", 'callback_data' => "set_caption"], ['text' => "🗑 حذف کپشن", 'callback_data' => "del_caption"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ کپشن پست ها به اعمال روی پست هایی که کپشن ندارند با موفقیت تغییر یافت. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else answercallbackquery($callback_query_id, '❌ از قبل روی این گزینه فعال بود.');
    }
    #======================= comment =======================# 
    elseif ($data == "show_commentLink") {
        $comment_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_link'"))['type_id'] ?: "لینک تنظیم نشده است...";
        $comment_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_text'"))['columnOne'] ?: "متن تنظیم نشده است...";
        editMessageText($from_id, $message_id, "لینک کامنت اجباری : \n$comment_link \n\nمتن کامنت اجباری : \n$comment_text \n\n برای تنظیم لینک روی دکمه ( ⚙️ تنظیم لینک ) ، برای تنظیم متن روی دکمه ی ( 📝 تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف کامنت اجباری ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
            [['text' => "⚙️ تنظیم لینک", 'callback_data' => "set_commentLink"], ['text' => "📝 تنظیم متن", 'callback_data' => "set_commentText"]],
            [['text' => "🗑 حذف کامنت اجباری", 'callback_data' => "del_commentLink"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
        ]]));
    }
    #=======================#
    elseif ($data == "del_commentLink") {
        $comment_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_link'"))['type_id'];
        if ($comment_link) {
            $db->query("UPDATE `settings` SET `type_id` = '' WHERE `type` = 'comment_link'");
            answercallbackquery($callback_query_id, "✅ لینک کامنت اجباری با موفقیت حذف شد.");

            $comment_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_link'"))['type_id'] ?: "لینک تنظیم نشده است...";

            editMessageText($from_id, $message_id, "لینک کامنت اجباری : \n\n $comment_link \n\nبرای تنظیم لینک روی دکمه ( ⚙️ تنظیم لینک ) ، برای تنظیم متن روی دکمه ی ( 📝 تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف کامنت اجباری ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم لینک", 'callback_data' => "set_commentLink"], ['text' => "📝 تنظیم متن", 'callback_data' => "set_commentText"]],
                [['text' => "🗑 حذف کامنت اجباری", 'callback_data' => "del_commentLink"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ لینک کامنت اجباری با موفقیت حذف شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else  answercallbackquery($callback_query_id, "❌ لینک کامنت اجباری تنظیم نشده است");
    }
    #=======================#
    elseif ($data == "set_commentLink") {
        $comment_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_link'"))['type_id'] ?: "لینک تنظیم نشده است...";
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, " لینک قبلی : \n\n $comment_link \n\n▪️ لطفا لینک خود را ارسال کنید :\n( تنها لینک دارای <code>https://t.me/</code> یا <code>http://t.me/</code>  میتوانید ارسال کنید )", "html", $back_panel);
        $db->query("UPDATE `user` SET `step` = 'set_commentLink' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_commentLink") {
        if (preg_match('/^https:\/\/t.me\/(.*)/', $text) or preg_match('/^http:\/\/t.me\/(.*)/', $text)) {

            $db->query("UPDATE `settings` SET `type_id` = '$text' WHERE `type` = 'comment_link'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");

            $comment_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_link'"))['type_id'] ?: "لینک تنظیم نشده است...";
            sendMessage($from_id, "✅ لینک کامنت اجباری با موفقیت تنظیم شد.", "html", $panel, $message_id);
            sendMessage($from_id, "لینک کامنت اجباری : \n\n $comment_link \n\nبرای تنظیم لینک روی دکمه ( ⚙️ تنظیم لینک ) ، برای تنظیم متن روی دکمه ی ( 📝 تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف کامنت اجباری ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم لینک", 'callback_data' => "set_commentLink"], ['text' => "📝 تنظیم متن", 'callback_data' => "set_commentText"]],
                [['text' => "🗑 حذف کامنت اجباری", 'callback_data' => "del_commentLink"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ لینک کامنت اجباری با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else sendMessage($from_id, "⚠️ توجه داشته باشید که باید با <code>https://t.me/</code> یا <code>http://t.me/</code> و یا با @ شروع شود\nلطفا دوباره ارسال کنید", 'html', $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "set_commentText") {
        $comment_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_text'"))['type_id'] ?: "متن تنظیم نشده است...";
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, " متن قبلی : \n\n $comment_text \n\n▪️ لطفا متن خود را ارسال کنید :\n( تنها متن میتوانید ارسال کنید ; متن میتواند در قالب html نیز باشد )\n❗️ برای تنظیم متن پیشفرض میتوانید <code>null</code> رو ارسال کنید.", "html", $back_panel);
        $db->query("UPDATE `user` SET `step` = 'set_commentText' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_commentText") {
        if ($text) {
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            $comment_Text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'comment_text'"))['columnOne'] ?: "متن تنظیم نشده است...";
            sendMessage($from_id, "✅ متن کامنت اجباری با موفقیت تنظیم شد.", "html", $panel, $message_id);
            sendMessage($from_id, "متن کامنت اجباری : \n\n $text \n\nبرای تنظیم لینک روی دکمه ( ⚙️ تنظیم لینک ) ، برای تنظیم متن روی دکمه ی ( 📝 تنظیم متن ) ، برای حذف روی دکمه ( 🗑 حذف کامنت اجباری ) و برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم لینک", 'callback_data' => "set_commentLink"], ['text' => "📝 تنظیم متن", 'callback_data' => "set_commentText"]],
                [['text' => "🗑 حذف کامنت اجباری", 'callback_data' => "del_commentLink"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ متن کامنت اجباری با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            if ($text == 'null') $text = '';
            $db->query("UPDATE `settings` SET `columnOne` = '$text' WHERE `type` = 'comment_text'");
        } else sendMessage($from_id, "❌ تنها متن میتوانید ارسال کنید", 'html', $back_panel, $message_id);
    }
    #======================= seen =======================# 
    elseif ($data == "show_seenLink") {
        $seen_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_link'"))['type_id'] ?: "لینک تنظیم نشده است...";
        $seen_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_text'"))['columnOne'] ?: "متن تنظیم نشده است...";
        editMessageText($from_id, $message_id, "لینک سین اجباری : \n$seen_link \n\nمتن سین اجباری : \n$seen_text \n\n🚦 راهنما :\n1 - برای تنظیم لینک روی دکمه ( ⚙️ تنظیم لینک ) بزنید\n2 - برای تنظیم متن روی دکمه ی ( 📝 تنظیم متن ) بزنید \n3 - برای حذف روی دکمه ( 🗑 حذف سین اجباری ) بزنید\n4 - برای تنظیم ثانیه انتظار برای سین زدن پست ها روی دکمه ( ⚙️ تنظیم تعداد ثانیه انتظار ) بزنید.\n5 - برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
            [['text' => "⚙️ تنظیم لینک", 'callback_data' => "set_seenLink"], ['text' => "📝 تنظیم متن", 'callback_data' => "set_seenText"]],
            [['text' => "⚙️ تنظیم تعداد ثانیه انتظار", 'callback_data' => "set_seenTime"], ['text' => "🗑 حذف سین اجباری", 'callback_data' => "del_seenLink"]],
            [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
        ]]));
    }
    #=======================#
    elseif ($data == "del_seenLink") {
        $seen_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_link'"))['type_id'];
        if ($seen_link) {
            $db->query("UPDATE `settings` SET `type_id` = '' WHERE `type` = 'seen_link'");
            answercallbackquery($callback_query_id, "✅ لینک سین اجباری با موفقیت حذف شد.");

            $seen_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_link'"))['type_id'] ?: "لینک تنظیم نشده است...";

            editMessageText($from_id, $message_id, "لینک سین اجباری : \n\n $seen_link \n\n🚦 راهنما :\n1 - برای تنظیم لینک روی دکمه ( ⚙️ تنظیم لینک ) بزنید\n2 - برای تنظیم متن روی دکمه ی ( 📝 تنظیم متن ) بزنید \n3 - برای حذف روی دکمه ( 🗑 حذف سین اجباری ) بزنید\n4 - برای تنظیم ثانیه انتظار برای سین زدن پست ها روی دکمه ( ⚙️ تنظیم تعداد ثانیه انتظار ) بزنید.\n5 - برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم لینک", 'callback_data' => "set_seenLink"], ['text' => "📝 تنظیم متن", 'callback_data' => "set_seenText"]],
                [['text' => "⚙️ تنظیم تعداد ثانیه انتظار", 'callback_data' => "set_seenTime"], ['text' => "🗑 حذف سین اجباری", 'callback_data' => "del_seenLink"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ لینک سین اجباری با موفقیت حذف شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else  answercallbackquery($callback_query_id, "❌ لینک سین اجباری تنظیم نشده است");
    }
    #=======================#
    elseif ($data == "set_seenLink") {
        $seen_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_link'"))['type_id'] ?: "لینک تنظیم نشده است...";
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, " لینک قبلی : \n\n $seen_link \n\n▪️ لطفا لینک خود را ارسال کنید :\n( تنها لینک دارای <code>https://t.me/</code> یا <code>http://t.me/</code>  میتوانید ارسال کنید )", "html", $back_panel);
        $db->query("UPDATE `user` SET `step` = 'set_seenLink' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_seenLink") {
        if (preg_match('/^https:\/\/t.me\/(.*)/', $text) or preg_match('/^http:\/\/t.me\/(.*)/', $text)) {

            $db->query("UPDATE `settings` SET `type_id` = '$text' WHERE `type` = 'seen_link'");
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");

            $seen_link = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_link'"))['type_id'] ?: "لینک تنظیم نشده است...";
            sendMessage($from_id, "✅ لینک سین اجباری با موفقیت تنظیم شد.", "html", $panel, $message_id);
            sendMessage($from_id, "لینک سین اجباری : \n\n $seen_link \n\n🚦 راهنما :\n1 - برای تنظیم لینک روی دکمه ( ⚙️ تنظیم لینک ) بزنید\n2 - برای تنظیم متن روی دکمه ی ( 📝 تنظیم متن ) بزنید \n3 - برای حذف روی دکمه ( 🗑 حذف سین اجباری ) بزنید\n4 - برای تنظیم ثانیه انتظار برای سین زدن پست ها روی دکمه ( ⚙️ تنظیم تعداد ثانیه انتظار ) بزنید.\n5 - برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم لینک", 'callback_data' => "set_seenLink"], ['text' => "📝 تنظیم متن", 'callback_data' => "set_seenText"]],
                [['text' => "⚙️ تنظیم تعداد ثانیه انتظار", 'callback_data' => "set_seenTime"], ['text' => "🗑 حذف سین اجباری", 'callback_data' => "del_seenLink"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ لینک سین اجباری با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        } else sendMessage($from_id, "⚠️ توجه داشته باشید که باید با <code>https://t.me/</code> یا <code>http://t.me/</code> و یا با @ شروع شود\nلطفا دوباره ارسال کنید", 'html', $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "set_seenText") {
        $seen_text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_text'"))['type_id'] ?: "متن تنظیم نشده است...";
        deleteMessage($from_id, $message_id);
        sendMessage($from_id, " متن قبلی : \n\n $seen_text \n\n▪️ لطفا متن خود را ارسال کنید :\n( تنها متن میتوانید ارسال کنید ; متن میتواند در قالب html نیز باشد )\n❗️ برای تنظیم متن پیشفرض میتوانید <code>null</code> رو ارسال کنید.", "html", $back_panel);
        $db->query("UPDATE `user` SET `step` = 'set_seenText' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_seenText") {
        if ($text) {
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            $seen_Text = mysqli_fetch_assoc($db->query("SELECT * FROM `settings` WHERE `type` = 'seen_text'"))['columnOne'] ?: "متن تنظیم نشده است...";
            sendMessage($from_id, "✅ متن سین اجباری با موفقیت تنظیم شد.", "html", $panel, $message_id);
            sendMessage($from_id, "متن سین اجباری : \n\n $text \n\n🚦 راهنما :\n1 - برای تنظیم لینک روی دکمه ( ⚙️ تنظیم لینک ) بزنید\n2 - برای تنظیم متن روی دکمه ی ( 📝 تنظیم متن ) بزنید \n3 - برای حذف روی دکمه ( 🗑 حذف سین اجباری ) بزنید\n4 - برای تنظیم ثانیه انتظار برای سین زدن پست ها روی دکمه ( ⚙️ تنظیم تعداد ثانیه انتظار ) بزنید.\n5 - برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم لینک", 'callback_data' => "set_seenLink"], ['text' => "📝 تنظیم متن", 'callback_data' => "set_seenText"]],
                [['text' => "⚙️ تنظیم تعداد ثانیه انتظار", 'callback_data' => "set_seenTime"], ['text' => "🗑 حذف سین اجباری", 'callback_data' => "del_seenLink"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ متن سین اجباری با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            if ($text == 'null') $text = '';
            $db->query("UPDATE `settings` SET `columnOne` = '$text' WHERE `type` = 'seen_text'");
        } else sendMessage($from_id, "❌ تنها متن میتوانید ارسال کنید", 'html', $back_panel, $message_id);
    }
    #=======================#
    elseif ($data == "set_seenTime") {
        $seenTime = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'seenTime'"))['type_id'] ?: "10";
        deleteMessage($from_id, $message_id);
        $buttons = [[['text' =>  'برگشت 🔙'], ['text' => '0']]];
        for ($i = 1; $i < 100; $i++) {
            $pi = $i + 5;
            for ($i; $i < $pi; $i++) {
                $button[] = ['text' => "$i"];
            }
            $buttons[] = $button;
            $button = [];
            $i--;
        }
        $buttons = json_encode(['keyboard' => $buttons]);
        sendMessage($from_id, " مقدار انتظار : \n\n " . number_format($seenTime) . " ثانیه\n\n▪️ لطفا مقدار انتظار برای دیدن پست هارو برای سین زدن پست ها انتخاب کنید :\n\nاگر میخواهید روی حالت پیشفرض باشه عدد 0 را وارد کنید.", "html", $buttons);
        $db->query("UPDATE `user` SET `step` = 'set_seenTime' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == "set_seenTime") {
        if (is_numeric($text)) {
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            sendMessage($from_id, "✅ مقدار انتظار سین اجباری با موفقیت تنظیم شد.", "html", $panel, $message_id);
            sendMessage($from_id, "مقدار انتظار : \n\n $text ثانیه\n\n🚦 راهنما :\n 🚦 راهنما :\n1 - برای تنظیم لینک روی دکمه ( ⚙️ تنظیم لینک ) بزنید\n2 - برای تنظیم متن روی دکمه ی ( 📝 تنظیم متن ) بزنید \n3 - برای حذف روی دکمه ( 🗑 حذف سین اجباری ) بزنید\n4 - برای تنظیم ثانیه انتظار برای سین زدن پست ها روی دکمه ( ⚙️ تنظیم تعداد ثانیه انتظار ) بزنید.\n5 - برای بازگشت روی ( 🔙 بازگشت ) بزنید.", "html", json_encode(['inline_keyboard' => [
                [['text' => "⚙️ تنظیم لینک", 'callback_data' => "set_seenLink"], ['text' => "📝 تنظیم متن", 'callback_data' => "set_seenText"]],
                [['text' => "⚙️ تنظیم تعداد ثانیه انتظار", 'callback_data' => "set_seenTime"], ['text' => "🗑 حذف سین اجباری", 'callback_data' => "del_seenLink"]],
                [['text' => "🔙 بازگشت", 'callback_data' => "manage_ads"]]
            ]]));
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ مقدار انتظار سین اجباری با موفقیت تنظیم شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
            if ($text == 0) $text == 10;
            $db->query("UPDATE `settings` SET `type_id` = '$text' WHERE `type` = 'seen_time'");
        } else sendMessage($from_id, "❌ تنها عدد میتوانید ارسال کنید", 'html', $back_panel, $message_id);
    }
    #======================= ads =======================# 
    elseif ($data == "show_ads") {
        $adsJSON = array_keys(json_decode(file_get_contents('res/sets.json'), true)['ads']);
        if ($adsJSON) {
            $adsText = "☑️ به بخش ( 🧧 ارسال تبلیغ بعد پست ) خوش امدید\n\n🚦 راهنما :\n1 - 👁 برای مشاهده ی هر کدام روی کد آن تبلیغ بزنید.\n2 - برای حذف هر کدام روی دکمه ی ( 🗑 ) بزنید\n3 - برای افزودن تبلیغ روی دکمه ی ( ➕ افزودن تبلیغ ) بزنید";
            $button[] = [['text' => '📣 کد تبلیغ', 'callback_data' => 'none'], ['text' => '🗑 حذف', 'callback_data' => 'none']];
            foreach ($adsJSON as $ads) $button[] = [['text' => '👁 ' . $ads, 'callback_data' => "show_ads_" . $ads], ['text' => '🗑', 'callback_data' => "del_ads_" . $ads]];
        } else $adsText = '❌ شما تبلیغی برای حذف و مشاهده ندارید لطفا از طریق دکمه ی ( ➕ افزودن تبلیغ ) اضافه کنید.';
        $button[] = [['text' => '➕ افزودن تبلیغ', 'callback_data' => 'add_ads'], ['text' => '(🔙) برگشت', 'callback_data' => 'manage_ads']];
        editMessageText($from_id, $message_id, $adsText, null, json_encode(['inline_keyboard' => $button]));
    }
    #=======================#
    elseif (preg_match('/^show_ads_(.*)/', $data, $match)) {
        $adsJSON = json_decode(file_get_contents('res/sets.json'), true)['ads'][$match[1]];
        ForwardMessage($from_id, $adsJSON['user_id'], $adsJSON['message_id']);
    }
    #=======================#
    elseif (preg_match('/^del_ads_(.*)/', $data, $match)) {
        answercallbackquery($callback_query_id, "✅ ارسال تبلیغ بعد از پست ها با کد : {$match[1]} با موفقیت حذف شد.");
        $adsJSON = json_decode(file_get_contents('res/sets.json'), true);
        unset($adsJSON['ads'][$match[1]]);
        if ($adsJSON) {
            $adsText = "☑️ به بخش ( 🧧 ارسال تبلیغ بعد پست ) خوش امدید\n\n🚦 راهنما :\n1 - 👁 برای مشاهده ی هر کدام روی کد آن تبلیغ بزنید.\n2 - برای حذف هر کدام روی دکمه ی ( 🗑 ) بزنید\n3 - برای افزودن تبلیغ روی دکمه ی ( ➕ افزودن تبلیغ ) بزنید";
            $button[] = [['text' => '📣 کد تبلیغ', 'callback_data' => 'none'], ['text' => '🗑 حذف', 'callback_data' => 'none']];
            while ($row = mysqli_fetch_assoc($adsSQL)) $button[] = [['text' => '👁 ' . $row['type_id'], 'callback_data' => "show_ads_{$row['type_id']}"], ['text' => '🗑', 'callback_data' => "del_ads_{$row['type_id']}"]];
            $listAds = array_keys($adsJSON['ads']);
            foreach ($listAds as $ads) $button[] = [['text' => '👁 ' . $ads, 'callback_data' => "show_ads_" . $ads], ['text' => '🗑', 'callback_data' => "del_ads_" . $ads]];
        } else $adsText = '❌ شما تبلیغی برای حذف و مشاهده ندارید لطفا از طریق دکمه ی ( ➕ افزودن تبلیغ ) اضافه کنید.';
        $button[] = [['text' => '➕ افزودن تبلیغ', 'callback_data' => 'add_ads'], ['text' => '(🔙) برگشت', 'callback_data' => 'manage_ads']];
        editMessageText($from_id, $message_id, $adsText, null, json_encode(['inline_keyboard' => $button]));
        file_put_contents('res/sets.json', json_encode($adsJSON));
        $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
        if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ ارسال تبلیغ بعد از پست ها با کد : {$match[1]} با موفقیت حذف شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
    }
    #=======================#
    elseif ($data == "add_ads") {
        editMessageText($from_id, $message_id, "▪️ برای افزودن تبلیغ لطفا تبلیغ خود را ارسال کنید. ( توجه کنید که تبلیغ قراره توسط ربات فروارد بشه. )", "html", json_encode(['inline_keyboard' => [
            [['text' => "🔙 بازگشت", 'callback_data' => "show_ads"]]
        ]]));
        $db->query("UPDATE `user` SET `step` = 'add_ads' WHERE `from_id` = '$from_id'");
    }
    #=======================# 
    elseif ($step == "add_ads") {
        $random = random();
        sendMessage($from_id, "✅ ارسال تبلیغ بعد از پست ها با کد : $random با موفقیت اضافه شد.", null, json_encode(['inline_keyboard' => [[['text' => "🔙 بازگشت", 'callback_data' => "show_ads"]]]]), $message_id);
        $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
        if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ ارسال تبلیغ بعد از پست ها با کد : $random با موفقیت اضافه شد. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
        $adsJSON = json_decode(file_get_contents('res/sets.json'), true);
        $adsJSON['ads'][$random] = ['user_id' => $from_id, 'message_id' => $message_id];
        file_put_contents('res/sets.json', json_encode($adsJSON));
    }
    #======================= set del time =======================#
    elseif ($text == '🗑 تنظیم حذف شدن') {
        $buttons = [[['text' =>  'برگشت 🔙'], ['text' => '0']]];
        for ($i = 1; $i < 100; $i++) {
            $pi = $i + 5;
            for ($i; $i < $pi; $i++) {
                $button[] = ['text' => "$i"];
            }
            $buttons[] = $button;
            $button = [];
            $i--;
        }
        $buttons = json_encode(['keyboard' => $buttons]);
        sendMessage($from_id, "▪️ لطفا یک عدد را برای مدت زمان حذف شدن فایل وارد کنید .\nاز کیبورد زیر هم میتوانید کمک بگیرید.\n\nℹ️ همچنین برای حذف مدت زمان میتوانید بر روی دکمه ی 0 کلیک یا تایپ کنید.\n\n⚠️ توجه داشته باشید که به دقیقه حساب میشود", "markdown", $buttons, $message_id);
        $db->query("UPDATE `user` SET `step` = 'DeleteFile' WHERE `from_id` = '$from_id'");
    }
    #=======================#
    elseif ($step == 'DeleteFile') {
        if (is_numeric($text) or $text == '0') {
            sendMessage($from_id, "✔️ مدت زمان با موفقیت تنظیم شد", null, $panel, $message_id);
            $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '$from_id'");
            $db->query("UPDATE `settings` SET `type_id` = '$text' WHERE `type` = 'del'");
            $owner = mysqli_fetch_assoc($db->query("SELECT `type_id` FROM `settings` WHERE `type` = 'admin' AND `columnOne` = 'main'"))['type_id'];
            if ($admin_data['columnOne'] != 'main') sendMessage($owner, "✅ مدت زمان فایل ها به $text دقیقه تغییر یافت. \n\n🧑🏻‍💻 توسط : $from_id - $first_name");
        }
    }
}
#======================= get files =======================# 
if ($text == '📥 آپلود فایل گروهی' and mysqli_num_rows($admin_sql) > 0) {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        $id = random();
        sendMessage($from_id, "▪️ لطفا فایل (های) خود را بفرستید :", "markdown", $btn_back, $message_id);
        if ($text == '📥 آپلود فایل گروهی') $db->query("UPDATE `user` SET `step` = 'upload_$id' WHERE `from_id` = '{$from_id}' LIMIT 1");
    } else joinSend($from_id);
}
#=======================# #=======================#
if ((isset($message->document) or isset($message->video) or isset($message->photo) or isset($message->sticker) or isset($message->audio) or isset($message->voice)) and $text != '🗄 اتمام اپلود' and $step != "set_ads" and $step != "step1s") {
    if (preg_match('/^upload_(.*)/', $step, $match)) {
        $id = $match[1];
    } else {
        $id = random();
    }

    if (isset($message->document)) {
        $file_type = "document";
        $file_typeFa = "فایل";
        $file_function = "senddocument";
    } elseif (isset($message->video)) {
        $file_type = "video";
        $file_typeFa = "ویدیو";
        $file_function = "sendvideo";
    } elseif (isset($message->photo)) {
        $file_type = "photo";
        $file_typeFa = "عکس";
        $file_function = "sendphoto";
    } elseif (isset($message->sticker)) {
        $file_type = "sticker";
        $file_typeFa = "استیکر";
        $file_function = "sendsticker";
    } elseif (isset($message->audio)) {
        $file_type = "audio";
        $file_typeFa = "آهنگ";
        $file_function = "sendaudio";
    } elseif (isset($message->voice)) {
        $file_type = "voice";
        $file_typeFa = "ویس";
        $file_function = "sendvoice";
    }

    if ($file_type != "photo") $file_id = $message->$file_type->file_id;
    elseif ($file_type == "photo")  $file_id = $message->photo[0]->file_id;

    if ($file_type != "photo") $file_size = $message->$file_type->file_size;
    elseif ($file_type == "photo") $file_size = $message->photo[0]->file_size;
    $size = convert($file_size);
    $time = date('h:i:s');
    $date = date('Y/m/d');
    $caption = $message->caption ?: '';
    #==================================================#
    function SendPhoto($chat_id, $photo, $caption, $message_id = '', $parse_mode = '', $keyboard = '')
    {
        return BoFile('SendPhoto', [
            'chat_id' => $chat_id,
            'photo' => $photo,
            'caption' => $caption,
            'reply_markup' => $keyboard,
            'parse_mode' => $parse_mode,
            'reply_to_message_id' => $message_id
        ]);
    }
    function sendDocument($chat_id, $document, $caption, $message_id = '', $parse_mode = '', $keyboard = '')
    {
        return BoFile('sendDocument', [
            'chat_id' => $chat_id,
            'document' => $document,
            'caption' => $caption,
            'reply_markup' => $keyboard,
            'parse_mode' => $parse_mode,
            'reply_to_message_id' => $message_id
        ]);
    }
    function sendVideo($chat_id, $video, $caption, $message_id = '', $parse_mode = '', $keyboard = '')
    {
        return BoFile('sendVideo', [
            'chat_id' => $chat_id,
            'video' => $video,
            'caption' => $caption,
            'reply_markup' => $keyboard,
            'parse_mode' => $parse_mode,
            'reply_to_message_id' => $message_id
        ]);
    }
    function sendVoice($chat_id, $voice, $caption, $message_id = '', $parse_mode = '', $keyboard = '')
    {
        return BoFile('sendVoice', [
            'chat_id' => $chat_id,
            'voice' => $voice,
            'caption' => $caption,
            'reply_markup' => $keyboard,
            'parse_mode' => $parse_mode,
            'reply_to_message_id' => $message_id
        ]);
    }
    function sendAudio($chat_id, $audio, $caption, $message_id = '', $parse_mode = '', $keyboard = '')
    {
        return BoFile('sendAudio', [
            'chat_id' => $chat_id,
            'audio' => $audio,
            'caption' => $caption,
            'reply_markup' => $keyboard,
            'parse_mode' => $parse_mode,
            'reply_to_message_id' => $message_id
        ]);
    }
    function sendSticker($chat_id, $sticker, $caption, $message_id = '', $parse_mode = '', $keyboard = '')
    {
        return BoFile('sendSticker', [
            'chat_id' => $chat_id,
            'sticker' => $sticker,
            'caption' => $caption,
            'reply_markup' => $keyboard,
            'parse_mode' => $parse_mode,
            'reply_to_message_id' => $message_id
        ]);
    }
    #==================================================#

    $file_function(
        $from_id,
        $file_id,
        "📍 $file_typeFa شما با موفقیت داخل دیتابیس ذخیره شده ... !\n▪️ شناسه $file_typeFa شما : <code>$id</code>\n\n➖ بقیه اطلاعات $file_typeFa شما : \n\n💾  حجم $file_typeFa : <b>$size</b>\n📝 توضیحات $file_typeFa : \n<code>$caption</code>\nلینک اشتراک گذاری $file_typeFa:\n📥 https://t.me/" . $usernamebot . "?start=get_" . $id,
        $message_id,
        "html",
        json_encode([
            'inline_keyboard' => [
                [['text' => "📋 تغییر کپشن", 'callback_data' => "editCaption_$id"]],
                [['text' => "🗑 حذف کپشن", 'callback_data' => "delCaption_$id"]]
            ]
        ])
    );

    $db->query("INSERT INTO `file` (`id`, `file_id`, `type`,`caption`, `password`, `file_size`, `user_id`, `date`, `time`) VALUES ('{$id}', '{$file_id}', '{$file_type}', '$caption', '', '{$file_size}', '{$from_id}', '{$date}', '{$time}')");

    if (preg_match('/^upload_(.*)/', $step)) {
        $count = mysqli_num_rows($db->query("SELECT * FROM `file` WHERE `id` = '{$id}'"));
        sendMessage($from_id, "🗂 تعداد فایل های اپلود شده تا اینجا : $count\n▪️ لطفا اگر فایل دیگری دارید بفرستید :", "markdown", $btn_end, $message_id);
        $db->query("UPDATE `user` SET `step` = 'upload_$id' WHERE `from_id` = '{$from_id}' LIMIT 1");
    } else {
        $hyperlink = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'hyperlink'"))['columnOne'] ?: "تماشای " . $file_typeFa;
        sendMessage($from_id,$caption."<a href='https://t.me/$usernamebot?start=get_$id'>$hyperlink</a>", 'html');
 sendMessage($from_id, "🖇$size"); 

    }
}
#=======================#
elseif ($text == '🗄 اتمام اپلود') {
    if (isJoin($from_id)) {unlink("Data/$from_id.txt");
        if (preg_match('/^upload_(.*)/', $step, $match)) $id = $match[1];
        $count = mysqli_num_rows($db->query("SELECT * FROM `file` WHERE `id` = '{$id}'"));
        if ($count > 1) $fileCount = 'فایل های';
        else  $fileCount = 'فایل';
        sendMessage($from_id, "✅ $fileCount شما با موفقیت اپلود شد!\n\n📍 $fileCount شما با موفقیت داخل دیتابیس ذخیره شده ... !\n▪️ شناسه $fileCount شما : <code>$id</code>\n\n➖ شما : لینک اشتراک گذاری $fileCount:\n📥 https://t.me/" . $usernamebot . "?start=get_" . $id, "html", $btn_home, $message_id);
        $hyperlink = mysqli_fetch_assoc($db->query("SELECT `columnOne` FROM `settings` WHERE `type` = 'hyperlink'"))['columnOne'] ?: "تماشای " . $file_typeFa;
        sendMessage($from_id, "<a href='https://t.me/$usernamebot?start=get_$id'>$hyperlink</a>", 'html');
        $db->query("UPDATE `user` SET `step` = 'none' WHERE `from_id` = '{$from_id}' LIMIT 1");
    } else joinSend($from_id);
    exit(false);
}
$delMsg = mysqli_fetch_assoc(mysqli_query($db, "SELECT * FROM `del` WHERE `timeDel` < $time LIMIT 100"));
if ($delMsg) {
    BoFile('deleteMessage', ['chat_id' => $delMsg['from_id'], 'message_id' => $delMsg['message_id']]);
    $db->query("DELETE FROM `del` WHERE `message_id` = {$delMsg['message_id']} AND `from_id` = {$delMsg['from_id']}");
}
