# راهنمای ادمین — پنل مدیریت داخل تلگرام (به‌روزرسانی‌شده تا Update Pack)

این سند برای ادمین‌های ربات TFB Engine نوشته شده — چطور از داخل خودِ
تلگرام، بدون هیچ پنل وب جداگانه‌ای، آزمون بسازید، مدیریت کنید و منتشر
کنید. برای مستندات فنی/معماری به `docs/ARCHITECTURE.md`،
`docs/DOMAIN.md` و `docs/PRODUCT_RULES.md` مراجعه کنید. برای معماری
سیستم پیام‌رسانی همگانی و آپدیت/بازگشت به `docs/BROADCAST.md` و
`docs/UPDATE_ROLLBACK.md` مراجعه کنید.

## ۱. چه کسی ادمین است؟ چه کسی سوپرادمین است؟

هر شناسه عددی تلگرامی که در `config/app.php` زیر کلید `admins.ids`
قرار دارد ادمین محسوب می‌شود. **اولین شناسه در این فهرست همیشه
«سوپرادمین»** است — فقط سوپرادمین به بخش «🔐 هسته/امنیت» (تغییر توکن
ربات، اطلاعات دیتابیس) و «🔄 به‌روزرسانی» ربات دسترسی دارد. ادمین‌های
بعدی که با «➕ افزودن ادمین دوم» اضافه می‌شوند، به تمام امکانات
محتوایی (ساخت آزمون، کاربران، کمپین، آمار، پیام‌رسانی، بکاپ) دسترسی
دارند اما نمی‌توانند توکن/دیتابیس را تغییر دهند یا آپدیت اجرا کنند.
برای پیدا کردن شناسه عددی خودتان، دستور `/myid` را در ربات بفرستید یا
به [@userinfobot](https://t.me/userinfobot) پیام بدهید.

## ۲. شروع کار — کیبورد ادمین همیشه در دسترس

از این‌به‌بعد، به‌محض اینکه یک ادمین دستور `/start` را بفرستد (حتی
بدون هیچ لینک اضافه‌ای)، یک **کیبورد پایدار پایین صفحه** ظاهر می‌شود
که همیشه در دسترس است و نیازی به تایپ `/admin` نیست:

```
📊 داشبورد    🧪 آزمون‌ها
👥 کاربران    📨 پیام‌رسانی
📣 کمپین‌ها   📈 آمار
📁 فایل‌ها    ⚙️ تنظیمات
🔄 به‌روزرسانی  🩺 سلامت/لاگ
🗜 پشتیبان‌گیری
```

دستور `/admin` هم همچنان کار می‌کند و مستقیم داشبورد را باز می‌کند.
اگر یک ادمین از لینک اختصاصی یک آزمون استفاده کند (`/start
t_...`)، ربات او را وارد حالت دانش‌آموزی نمی‌کند — به او یادآوری
می‌شود که برای تست واقعی تجربه‌ی دانش‌آموز، از یک اکانت غیرادمین
استفاده کند.

منوی اصلی (چه از کیبورد پایین، چه از `/admin`) این بخش‌ها را نشان
می‌دهد:

- 📊 **داشبورد** — آمار کلی + ۲۴ ساعت اخیر + برترین کمپین
- 🧪 **آزمون‌ها** — لیست، ساخت، ویرایش، فعال‌سازی
- 👥 **کاربران** — لیست با صفحه‌بندی کامل (بعدی/قبلی/±۵ صفحه/اول/آخر)،
  جستجو، مشاهده جزئیات، بن/آنبن، ارسال پیام تکی، حالت گفتگوی خصوصی
- 📨 **پیام‌رسانی** — ارسال همگانی امن و مقیاس‌پذیر (بخش ۵)
- 📣 **کمپین‌ها** — ساخت، ویرایش، حذف، اتصال به آزمون، لینک‌های
  چرخشی، آمار
- 📈 **آمار** — گزارش کلی/بر اساس آزمون/بر اساس کمپین با بازه زمانی
- 📁 **فایل‌ها** — کتابخانه فایل‌های آپلودشده
- ⚙️ **تنظیمات** — تنظیمات محتوایی قابل ویرایش (پیام‌ها، حالت CTA و...)
- 🔄 **به‌روزرسانی** — آپدیت ربات با ZIP + بازگشت به نسخه قبلی (فقط
  سوپرادمین)
- 🩺 **سلامت/لاگ** — بررسی سلامت سیستم + مشاهده لاگ‌ها
- 🗜 **پشتیبان‌گیری** — بکاپ/بازیابی دستی دیتابیس
- 🔐 **هسته/امنیت** — تغییر توکن/دیتابیس، افزودن ادمین (فقط سوپرادمین)

اگر هر زمان در وسط یک مرحله گیر کردید، `/admin` یا `/cancel` را
بفرستید — همیشه شما را به‌صورت امن به حالت اولیه برمی‌گرداند، هیچ
داده‌ای که قبلاً ذخیره شده از بین نمی‌رود.

## ۳. ساخت یک آزمون کامل (گام‌به‌گام)

### گام ۱ — ساخت آزمون

از منوی «🧪 آزمون‌ها» روی «➕ آزمون جدید» بزنید. فقط یک **عنوان** از
شما پرسیده می‌شود — اسلاگ (بخش انگلیسیِ لینک) به‌صورت خودکار از روی
عنوان ساخته می‌شود، نیازی به تایپ آن نیست. بلافاصله لینک اختصاصی آزمون
نمایش داده می‌شود (چیزی شبیه
`https://t.me/your_bot?start=t_azmvn-shoma`).

آزمون تازه‌ساخته‌شده **غیرفعال** است — تا وقتی حداقل یک پروفایل، یک
سوال با حداقل ۲ گزینه، و حداقل یک نتیجه با محتوا نداشته باشد، امکان
فعال‌سازی وجود ندارد (بخش ۵ همین راهنما را ببینید).

### گام ۲ — افزودن پروفایل‌ها

از صفحه مدیریت آزمون روی «👤 پروفایل‌ها» بزنید. برای هر پروفایل فقط
یک **عنوان فارسی** لازم است (مثلاً «تحلیلی»، «خلاق»). کد انگلیسی
پروفایل خودکار ساخته می‌شود. با ساخت هر پروفایل، یک ردیف «نتیجه» خالی
هم خودکار برایش ساخته می‌شود تا بعداً محتوایش را پر کنید.

**حداقل یک پروفایل لازم است تا آزمون قابل فعال‌سازی باشد.**

### گام ۳ — افزودن سوالات

از صفحه مدیریت آزمون روی «❓ سوالات» بزنید. سوالات فقط **متن** دارند
— هیچ عکس/ویس/توضیح اضافه‌ای برای سوال وجود ندارد (این یک قانون
محصول است، نه محدودیت فنی موقت).

### گام ۴ — افزودن گزینه به هر سوال

از صفحه هر سوال روی «🔘 گزینه‌ها» بزنید. هر سوال باید **حداقل ۲ گزینه**
داشته باشد. برای هر گزینه فقط متن گزینه پرسیده می‌شود.

### گام ۵ — امتیازدهی +/- به هر گزینه

از صفحه هر گزینه روی «🎯 امتیازدهی پروفایل‌ها» بزنید. یک صفحه با یک
ردیف دکمه به‌ازای هر پروفایل باز می‌شود:

```
[➖]  [پروفایل الف: 3]  [➕]
[➖]  [پروفایل ب: 0]    [➕]
      [✅ ثبت]
      [⬅️ بازگشت / انصراف]
```

- هر تپ روی ➕/➖ فقط عدد را در همان پیام آپدیت می‌کند (بدون ارسال
  پیام جدید) — **هیچ‌چیزی هنوز ذخیره نشده است.**
- امتیاز هیچ‌وقت کمتر از صفر نمی‌شود.
- فقط وقتی «✅ ثبت» را بزنید، مقادیر واقعاً در دیتابیس ذخیره می‌شوند.
- «⬅️ بازگشت / انصراف» (یا فرستادن `/cancel`) هر تغییری که هنوز ثبت
  نشده را کنار می‌گذارد — هیچ چیزی ذخیره نمی‌شود.

### گام ۶ — تنظیم مسیر گزینه (اختیاری)

از صفحه هر گزینه روی «🧭 تنظیم مسیر» بزنید. سه حالت:
- **سوال بعدی** (پیش‌فرض) — بعد از این گزینه، سوال بعدیِ ترتیبی نمایش
  داده می‌شود
- **پایان آزمون** — انتخاب این گزینه بلافاصله آزمون را تمام می‌کند
- **پرش به سوال دیگر** — می‌توانید هر سوال دیگری از همین آزمون را
  به‌عنوان مقصد انتخاب کنید (فقط سوالات همین آزمون قابل انتخاب‌اند)

### گام ۷ — محتوای نتیجه هر پروفایل

از صفحه مدیریت آزمون روی «🏁 نتایج» بزنید و یک پروفایل را انتخاب
کنید. هر بخش کاملاً **اختیاری و مستقل** است:

- **متن تحلیل** — تحلیل شخصی‌سازی‌شده‌ای که دانش‌آموز برنده این
  پروفایل می‌بیند. برای حذف متن، کلمه‌ی «حذف» را بفرستید.
- **ویس** — یک پیام صوتی که به این نتیجه پیوست می‌شود.
- **فایل** — یک فایل/سند (مثلاً PDF) که به این نتیجه پیوست می‌شود.
- **دکمه CTA** — یک دکمه با متن دلخواه که به یک لینک (باید با
  `https://` شروع شود) می‌رود. متن دکمه و لینک همیشه با هم تنظیم یا
  با هم حذف می‌شوند (کلمه‌ی «حذف» را در مرحله متن دکمه بفرستید).

⚠️ برای آپلود ویس/فایل، ربات باید **ادمین کانال خصوصی فایل‌ها** باشد
(کانالی که در نصب/تنظیمات به‌عنوان `channels.files` مشخص شده). اگر
این کانال تنظیم نشده یا ربات در آن ادمین نباشد، پیام خطای واضحی
می‌بینید.

**قانون مهم:** هیچ‌وقت پیام‌های خالی یا جای‌خالی («متن: ...») برای
دانش‌آموز ارسال نمی‌شود — فقط بخش‌هایی که واقعاً پر شده‌اند فرستاده
می‌شوند.

### گام ۸ — تنظیم حالت نمایش نتیجه و آستانه

از صفحه مدیریت آزمون روی «🎛️ نوع نمایش نتیجه» بزنید:

- **تک‌نتیجه (single):** فقط پروفایل با بیشترین امتیاز برای
  دانش‌آموز ارسال می‌شود. اگر دو پروفایل کاملاً مساوی اول شوند، یکی
  به‌صورت تصادفی انتخاب می‌شود.
- **دو‌نتیجه نزدیک (dual_on_close):** اگر اختلاف امتیاز نفر اول و
  دوم کمتر یا مساوی «آستانه» (که از دکمه «🎚 آستانه» تنظیم می‌شود)
  باشد، هر دو نتیجه نمایش داده می‌شود؛ در غیر این صورت فقط نفر اول.

### گام ۹ — فعال‌سازی

از صفحه مدیریت آزمون روی «✅ فعال‌سازی» بزنید. اگر آزمون هنوز کامل
نیست، دلایل دقیق و به فارسی نمایش داده می‌شود (مثلاً «سوال «...» کمتر
از ۲ گزینه دارد»). با رفع همه موارد، دوباره امتحان کنید. بعد از
فعال‌سازی موفق، لینک اختصاصی دوباره نمایش داده می‌شود — پیشنهاد
می‌شود آزمون را با یک اکانت دانش‌آموز واقعی تست کنید.

اگر هشدارهایی وجود داشته باشد (مثلاً نتیجه‌ای بدون دکمه CTA)، آزمون
همچنان فعال می‌شود ولی هشدارها نمایش داده می‌شوند — این‌ها مانع
فعال‌سازی نیستند، فقط یادآوری‌اند.

## ۳.۱ خروجی و درون‌ریزی JSON آزمون

در صفحه جزئیات آزمون، «خروجی JSON آزمون» یک فایل `.tfb.json` ساختاری می‌فرستد که پروفایل‌ها، سوال‌ها، گزینه‌ها، امتیازها، نتایج، گیت و محتوای فرعی را دارد؛ آمار، کاربران، سشن‌ها و کمپین‌ها داخل آن نیست. «درون‌ریزی آزمون» فقط همین فرمت نسخه ۱ و حداکثر ۲MB را می‌پذیرد، یک آزمون جدید غیرفعال می‌سازد، slug تکراری را خودکار تغییر می‌دهد و آزمون اصلی را دست‌نخورده نگه می‌دارد.

## ۳.۲ محتوای فرعی چندمرحله‌ای

تنها یک آزمون می‌تواند محتوای فرعی روشن داشته باشد. در صفحه محتوای فرعی، دسته‌ها و آیتم‌های متن/عکس/ویدیو/ویس/صوت/فایل مدیریت می‌شوند. تنظیم «محتوای فرعی چندمرحله‌ای» فقط نمایش دانش‌آموز را تغییر می‌دهد و هیچ دسته‌ای را حذف نمی‌کند. متن و رسانه با copy به کانال فایل‌ها ذخیره می‌شوند.

## ۳.۳ تنظیم مدت افکت انتقال

در تنظیمات عمومی، مقدار `transition_effect_ms` بین ۰ تا ۵۰۰۰ پذیرفته می‌شود. این مقدار ذخیره می‌شود اما webhook را چند ثانیه متوقف نمی‌کند.

## ۴. آزمون پیش‌فرض (بدون لینک)

اگر می‌خواهید کاربرانی که بدون لینک اختصاصی وارد ربات می‌شوند
(فقط `/start` ساده) مستقیم یک آزمون خاص را شروع کنند:

1. از صفحه مدیریت آن آزمون روی «⭐ تنظیم پیش‌فرض» بزنید.
2. از منوی ⚙️ تنظیمات، مقدار «اجرای آزمون پیش‌فرض بدون لینک» را روی
   `1` (روشن) بگذارید.

⚠️ **این رفتار هیچ‌وقت خودکار/ضمنی نیست** — تا وقتی این تنظیم را
صریحاً روشن نکنید، `/start` بدون لینک فقط یک پیام متنی ساده نشان
می‌دهد، حتی اگر یک آزمون را «پیش‌فرض» علامت زده باشید.

## ۵. چک‌لیست فعال‌سازی (چرا آزمونم فعال نمی‌شود؟)

| مانع (باعث رد فعال‌سازی می‌شود) | راه‌حل |
|---|---|
| هیچ پروفایلی تعریف نشده | حداقل یک پروفایل اضافه کنید |
| هیچ سوال فعالی وجود ندارد | حداقل یک سوال اضافه کنید |
| یک سوال کمتر از ۲ گزینه دارد | برای آن سوال گزینه اضافه کنید |
| یک گزینه به سوالی خارج از همین آزمون پرش می‌کند | مسیر آن گزینه را دوباره تنظیم کنید |
| هیچ نتیجه‌ای محتوا (متن/ویس/فایل) ندارد | حداقل به یک نتیجه محتوا اضافه کنید |
| حالت «دو‌نتیجه نزدیک» بدون آستانه معتبر | یک آستانه عدد صحیح غیرمنفی تنظیم کنید |

هشدارهای غیرمانع (نمایش داده می‌شوند ولی جلوی فعال‌سازی را نمی‌گیرند):
نتیجه‌ای بدون دکمه CTA، یا نتیجه‌ای که فقط یکی از متن دکمه/لینک را
دارد.

## ۶. کتابخانه فایل‌ها (📁 فایل‌ها)

مستقل از هر نتیجه‌ی خاص، می‌توانید یک ویس یا فایل را از قبل در
کتابخانه آپلود کنید (برای استفاده بعدی، یا فقط برای مدیریت). حذف یک
فایل از این کتابخانه فقط **متادیتا را از دیتابیس ما حذف می‌کند**، نه
از خودِ تلگرام — و اگر آن فایل هنوز به یک نتیجه متصل باشد، حذف انجام
نمی‌شود (اول باید از آن نتیجه جدا شود).

## ۷. تنظیمات قابل ویرایش (⚙️ تنظیمات)

فقط این هفت تنظیم از تلگرام قابل ویرایش‌اند (نه کل جدول تنظیمات —
عمداً، تا هیچ تنظیم داخلی حساسی اشتباهی خراب نشود):

| تنظیم | نوع | توضیح |
|---|---|---|
| متن `/start` بدون لینک تست | متن | وقتی کاربر بدون لینک وارد می‌شود |
| آستانه پیش‌فرض (Threshold) | عدد | مقدار پیش‌فرض برای آزمون‌های جدید |
| الزام عضویت در کانال | روشن/خاموش | سوییچ کلی چک عضویت کانال |
| اجرای آزمون پیش‌فرض بدون لینک | روشن/خاموش | بخش ۴ همین راهنما |
| متن حالت تعمیر | متن | وقتی ربات در حالت maintenance است |
| متن موفقیت عضویت | متن | بعد از تأیید عضویت در کانال |
| متن عدم عضویت | متن | وقتی هنوز عضو نشده |

برای مقادیر روشن/خاموش فقط عدد `1` یا `0` بفرستید.

## ۸. چند نکته امنیتی/فنی مهم

- اگر شخصی که ادمین نیست سعی کند وارد پنل ادمین شود یا روی دکمه‌های
  ادمین بزند، پیام «شما به این بخش دسترسی ندارید» می‌بیند و هیچ
  اطلاعاتی درباره ساختار پنل فاش نمی‌شود.
- حذف یک سوال، همه گزینه‌های آن را هم حذف می‌کند. حذف یک گزینه، همه
  امتیازهایش را هم حذف می‌کند. حذف یک پروفایل، امتیازها را حذف
  می‌کند ولی نتیجه‌ی مرتبط با آن پروفایل (اگر محتوا داشته باشد) از
  دیتابیس پاک نمی‌شود — فقط دیگر به هیچ پروفایلی وصل نیست.
- «حذف نرم» یک آزمون آن را از لیست‌ها پنهان می‌کند ولی سوابق
  آزمون‌های قبلیِ دانش‌آموزان حفظ می‌شود.
- هر عملیات مدیریتی (ساخت/ویرایش/حذف/فعال‌سازی/تغییر امتیاز/تغییر
  تنظیمات/آپلود فایل) در جدول `admin_audit_logs` ثبت می‌شود.

## ۹. پیام‌رسانی همگانی (Broadcast)

از منوی «📨 پیام‌رسانی»:

1. **انتخاب مخاطب**: «همه کاربران» یا «غیرعضوهای کانال اصلی» (بر
   اساس وضعیت واقعی عضویت ذخیره‌شده در دیتابیس — هیچ تماس زنده‌ای با
   تلگرام برای این انتخاب زده نمی‌شود).
2. **متن پیام** را بفرستید.
3. **پیش‌نمایش دقیق** بدون پیش‌نمایش لینک نشان داده می‌شود — دقیقاً
   همان چیزی که کاربر می‌بیند.
4. اختیاری: «🔘 افزودن دکمه» — نوع دکمه (شیشه‌ای/inline یا پایین
   صفحه/reply)، متن دکمه، لینک دکمه.
5. «✅ تأیید و شروع ارسال» را بزنید.

⚠️ **نکته مهم درباره سرعت**: ارسال به‌صورت دسته‌ای (chunk) و در
پس‌زمینه انجام می‌شود، نه یکباره. برای چند صد کاربر معمولاً همان لحظه
تمام می‌شود؛ برای چند هزار یا چند ده‌هزار کاربر ممکن است چند دقیقه تا
حدود یک ساعت طول بکشد — این عمدی است و برای جلوگیری از بلاک‌شدن ربات
توسط تلگرام طراحی شده (جزئیات کامل در `docs/BROADCAST.md`). اگر ارسال
کامل نشد، دکمه «▶️ ادامه ارسال» را بزنید یا صبر کنید. با «⛔ توقف
ارسال» هر زمان می‌توانید ارسال را متوقف کنید.

کاربرانی که ربات را بلاک کرده باشند خودکار شناسایی و از ارسال بعدی
حذف می‌شوند (هرگز روی آن‌ها retry بی‌نهایت انجام نمی‌شود).

## ۱۰. کمپین‌ها: اتصال به آزمون و لینک‌های چرخشی

### اتصال دکمه‌ای کمپین به آزمون
از صفحه‌ی هر کمپین، «🔗 اتصال به آزمون» را بزنید، از لیست آزمون‌های
فعال یکی را انتخاب کنید — ربات خودش لینک اختصاصی «آزمون + کمپین» را
می‌سازد و نمایش می‌دهد. هیچ نیازی به ساخت دستی payload نیست.

### لینک‌های چرخشی (ضد لینک‌سوزی)
اگر لینک یک کمپین جایی نامناسب پخش شد یا نگران سوءاستفاده هستید:

- **«🔄 صدور لینک جدید (باطل کردن قبلی)»**: لینک قبلی بلافاصله از کار
  می‌افتد، یک لینک جدید و غیرقابل‌حدس صادر می‌شود. **آمار تاریخی
  کمپین کاملاً حفظ می‌شود** — چیزی حذف نمی‌شود، فقط لینک عوض می‌شود.
- **«⛔ فقط باطل کردن لینک»**: لینک فعلی را بدون صدور جایگزین غیرفعال
  می‌کند (برای توقف کامل موقت ترافیک این کمپین).
- کسی که با لینک باطل‌شده وارد شود، پیام مناسب می‌بیند (نه خطا، نه
  اجرای اشتباه آزمون) و به هیچ کمپینی متصل نمی‌شود.

## ۱۱. حالت گفتگوی خصوصی با یک کاربر (Relay)

از صفحه‌ی جزئیات هر کاربر، «💬 گفتگوی خصوصی» را بزنید. از این لحظه:
- هر پیامی که شما (ادمین) بفرستید مستقیم برای همان کاربر ارسال می‌شود.
- هر پیامی که آن کاربر بفرستد، مستقیم برای شما نمایش داده می‌شود
  (نه برای هیچ ادمین دیگری).
- متن پیام‌ها در دیتابیس ذخیره نمی‌شود (فقط یک رکورد حسابرسی بدون متن).
- برای پایان گفتگو، `/cancel` را بفرستید.

کاربر می‌تواند خودش دریافت پیام از ادمین را غیرفعال کند؛ در آن صورت
اگر شما بخواهید گفتگو را شروع کنید، پیام مناسب می‌بینید.

## ۱۲. به‌روزرسانی ربات با ZIP (فقط سوپرادمین)

⚠️ این بخش حساس‌ترین قسمت پنل ادمین است — راهنمای کامل در
`docs/UPDATE_ROLLBACK.md`.

خلاصه‌ی روند:
1. از «🔄 به‌روزرسانی» → «🚀 شروع به‌روزرسانی».
2. ربات **خودکار** یک بکاپ کامل (کد + دیتابیس) می‌گیرد و به کانال
   فایل‌ها می‌فرستد — بدون بکاپ موفق، ادامه نمی‌دهد.
3. فایل ZIP بسته‌ی جدید را آپلود کنید.
4. ربات اعتبارسنجی (ساختار، حجم، امنیت مسیرها)، migration دیتابیس،
   و جایگزینی فایل‌ها را خودکار انجام می‌دهد.
5. یک بررسی سلامت خودکار بعد از آپدیت اجرا می‌شود.
6. نتیجه‌ی هر مرحله را با جزئیات فارسی می‌بینید.

**دکمه «⬅️ بازگشت/Downgrade» همیشه در دسترس است** — حتی اگر آپدیت با
خطا مواجه شود. با این دکمه می‌توانید به هر کدام از بکاپ‌های قبلی کد
برگردید.

## ۱۳. تنظیمات اتصال / هسته (فقط سوپرادمین)

از «🔐 هسته/امنیت» می‌توانید:
- تمام تنظیمات حساس فعلی را به‌صورت **ماسک‌شده** ببینید (توکن، رمز
  دیتابیس هرگز کامل نمایش داده نمی‌شوند).
- **تغییر توکن ربات**: روی «🔑 تغییر توکن ربات» بزنید — ربات یک
  **لینک یک‌بارمصرف امن** (فقط ۱۵ دقیقه معتبر) برایتان می‌فرستد. این
  لینک را در مرورگر باز کنید، توکن جدید را وارد کنید — قبل از ذخیره،
  اعتبار توکن با تلگرام تست می‌شود.
- **تغییر اطلاعات دیتابیس**: مشابه بالا، با «🗄 تغییر اطلاعات
  دیتابیس» — قبل از ذخیره، اتصال جدید تست می‌شود؛ اگر ناموفق بود،
  هیچ تغییری اعمال نمی‌شود.
- **افزودن ادمین دوم**: مستقیم در همین بخش، بدون نیاز به لینک وب
  (چون توکن/دیتابیس تغییر نمی‌کند).

⚠️ این لینک‌های یک‌بارمصرف را با هیچ‌کس به اشتراک نگذارید — هرکسی که
لینک را باز و فرم را ارسال کند، می‌تواند توکن/دیتابیس ربات را تغییر
دهد.
