# 🎨 Telegram Custom Buttons & Styles Reference (Bot API 9.4+)

This guide documents the styles, custom emoji IDs, and visual properties used for inline keyboard buttons in the Rambot project, compliance guidelines for Bot API 9.4+.

---

## 📌 Compliance Rules / قوانین استفاده
1. **No Duplicate Emojis / عدم تکرار ایموجی:** When using a custom emoji on an inline button via `icon_custom_emoji_id`, **do not** place a standard emoji in the button's text label.
   * *❌ Wrong:* `['text' => '✅ تایید', 'icon_custom_emoji_id' => '5208880351690112495']`
   * *✅ Correct:* `['text' => 'تایید', 'icon_custom_emoji_id' => '5208880351690112495']`
2. **Standard Classes / کلاس‌های کمکی:** Always use the static helper `Bot\ButtonHelper` to build common buttons (Cancel, Back, Decline, etc.) to keep styles and emoji IDs consistent.

---

## 🟢 Success Buttons / دکمه‌های موفقیت (سبز)
*Recommended for positive actions, confirmations, and activation switches.*

* **Style:** `success`
* **Custom Emoji ID:** `5208880351690112495`
* **Common actions:**
  - `approve` (تایید)
  - `have_joined` (عضو شدم)
  - `on` (روشن)
  - `unban_user` (رفع مسدودیت)
  - `renew_config` (تمدید)
* **Invite Friends action (`invite_friends`):**
  - **Emoji ID:** `5409008750893734809`
  - **Style:** `success`

---

## 🔴 Danger Buttons / دکمه‌های خطر و بازگشت (قرمز)
*Recommended for destructive actions, cancellation, and navigation back.*

* **Style:** `danger`
* **Custom Emoji ID:** `5215680783863261658` (Standard Cancel / Decline)
* **Back Emoji ID:** `5352759161945867747` (Standard Back / Return)
* **Common actions:**
  - `decline` (رد درخواست)
  - `ban_user` (مسدودسازی)
  - `off` (خاموش)
  - `delete_config` (حذف کانفیگ)
  - `cancel` (انصراف)
  - `back_button` / `back_to_main` (بازگشت به منو)

---

## 🔵 Primary Buttons / دکمه‌های اصلی (آبی)
*Recommended for core features, options, payments, and user settings.*

* **Style:** `primary`
* **Emoji Mapping Table:**

| Action Key | Emoji ID | Purpose / کاربرد |
| :--- | :---: | :--- |
| `pay_with_wallet` | `5332600543963522398` | پرداخت از کیف پول |
| `increase_wallet` | `5332600543963522398` | افزایش موجودی |
| `buy_subscriptions` | `5388617496007817382` | خرید اشتراک |
| `my_subscriptions` | `5278467510604160626` | اشتراک‌های من |
| `my_info` | `5409008750893734809` | اطلاعات من |
| `test_account` | `5199749070830197566` | اکانت تست |
| `sharj` / `cart_to_cart` / `gateways_settings` | `5213403875670765022` | درگاه و کارت به کارت |
| `my_tickets` / `message_to_all` / `forward_to_all` | `5303138782004924588` | تیکت‌ها و پیام همگانی |
| `application_links` / `change_config_location` | `5132131004097496494` | لینک اپلیکیشن و لوکیشن |
| `search_config` | `5379999674193172777` | جستجو |
| `shared_existence` / `individual_existence` | `5332600543963522398` | نوع موجودیت |
| `request_agency` / `agency_setting` | `5332600543963522398` | نمایندگی |
| `increase_config_volume` / `increase_config_days` | `5213403875670765022` | افزایش حجم و روزها |
| `update_config_connection` | `5352759161945867747` | بروزرسانی اتصال |

---

## 💻 PHP Helper implementation Example
```php
use Bot\ButtonHelper;

$keyboard = [
    "inline_keyboard" => [
        [
            ButtonHelper::customBtn("تایید عضویت", "approve_123", "approve"),
            ButtonHelper::cancelBtn("fa", "انصراف", "Cancel", "cancel_action")
        ]
    ]
];
```
