# العمل مع وسوم MaviBot

## إنشاء / إزالة وسم

create\_label() | add\_label() | remove\_label() | remove\_label\_everywhere() | count\_of\_clients\_with\_label() | has\_label()

<details>

<summary>الوصف</summary>

تُعرض وسوم MaviBot في ملف تعريف العميل على النحو التالي:

<div data-with-frame="true"><figure><img src="/files/9a0be230333759c4620911b0ca4d00baee52bd74" alt="" width="355"><figcaption><p>الوسوم في ملف تعريف العميل</p></figcaption></figure></div>

وفي **"Lists"** :

<div data-with-frame="true"><figure><img src="/files/00c89cf4656798db15096b228ba2cde7357de617" alt=""><figcaption></figcaption></figure></div>

**create\_label(label\_name)**\
ينشئ وسم MaviBot بالاسم المحدد

المعلمات:\ <mark style="color:red;">**!**</mark>**&#x20;label\_name**- اسم الوسم، يُحدَّد بين علامتي اقتباس مفردتين ('').

**add\_label(label\_name, client\_id)**\
إضافة وسم MaviBot إلى العميل&#x20;

المعلمات:\ <mark style="color:red;">**!**</mark>**&#x20;label\_name -** اسم الوسم، يُحدَّد بين علامتي اقتباس مفردتين ('')\
**client\_id** معرّف العميل. إذا تم إغفاله، فسيُستخدم معرّف العميل الحالي&#x20;

**remove\_label(label\_name, client\_id)**\
إزالة الوسم من العميل&#x20;

المعلمات:\ <mark style="color:red;">**!**</mark>**&#x20;label\_name** - اسم الوسم، يُحدَّد بين علامتي اقتباس مفردتين ('')\
**client\_id** - معرّف العميل. إذا تم إغفاله، فسيُستخدم معرّف العميل الحالي

**has\_label(label\_name, client\_id**) - التحقق مما إذا كان العميل يملك وسمًا&#x20;

المعلمات:\ <mark style="color:red;">**!**</mark>**&#x20;label\_name** - اسم الوسم، يُحدَّد بين علامتي اقتباس مفردتين ('')\
**client\_id** - معرّف العميل. إذا تم إغفاله، فسيُستخدم معرّف العميل الحالي

**remove\_label\_everywhere(label\_name)**\
إزالة الوسم من جميع العملاء

المعلمات:\ <mark style="color:red;">**!**</mark>**&#x20;label\_name**- اسم الوسم، يُحدَّد بين علامتي اقتباس مفردتين ('')

**count\_of\_clients\_with\_label(label\_name)**\
الحصول على العدد الإجمالي للعملاء الذين لديهم هذا الوسم

المعلمات:\ <mark style="color:red;">**!**</mark>**&#x20;label\_name**- اسم الوسم، يُحدَّد بين علامتي اقتباس مفردتين ('')

</details>

<details>

<summary>مثال</summary>

إذن، لِنرَ **كيف يتم إنشاء وسم MaviBot**.

كل ما عليك هو تنفيذ دالة الإنشاء مرة واحدة في الكتلة الرمادية (كتلة غير حالية)، على سبيل المثال:

<div data-with-frame="true"><figure><img src="/files/0d0dbb76057fceb98eaecc41d80d934db789540c" alt=""><figcaption><p>   إنشاء وسم باستخدام دالة الحاسبة</p></figcaption></figure></div>

وفي الوقت نفسه، يمكن استخدام المتغير ***a*** لتحليل نجاح دالة إنشاء الوسم:

<div data-with-frame="true"><figure><img src="/files/105de240df46202e8328edfc250d3c1279af3edd" alt="" width="563"><figcaption></figcaption></figure></div>

بعد ذلك، يمكنك **إسناد وسم إلى أي عميل** عن طريق إضافة `add_label()` الدالة في الكتلة المناسبة من مسار التحويل الخاص بك:

<div data-with-frame="true"><figure><img src="/files/1f97b2eb2f6d3cb310346999b84d8b8d92fa24e2" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/677296690c8c3f50ee05f43762e02af9e1ce992a" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/9f0abac78ec063852716a52798fd2e542881eed5" alt="" width="319"><figcaption></figcaption></figure></div>

يمكنك التحقق مما إذا كان العميل يملك وسمًا باستخدام `has_label()` الدالة:

<div data-with-frame="true"><figure><img src="/files/5a464a57e95fe00ccf99cdaffd286c40f9da41b5" alt=""><figcaption></figcaption></figure></div>

تُرجع الدالة قيمة منطقية: True أو False.&#x20;

<div data-with-frame="true"><figure><img src="/files/7811f3cd384a82d94e0fbeff59d7ff4f14cc3316" alt=""><figcaption></figcaption></figure></div>

**تُنفَّذ الإجراءات الأخرى المتعلقة بالوسوم بطريقة مماثلة**—إزالة وسم من عميل محدد أو إزالة وسم بالكامل من جميع العملاء.

يمكنك أيضًا عدّ عدد العملاء الذين لديهم وسم معيّن باستخدام `count_of_clients_with_label()` .

<div data-with-frame="true"><figure><img src="/files/6a6013c11f5b7b36976c523b76052ff4a929c0eb" alt="" width="375"><figcaption><p>عدّ عدد العملاء حسب وسم معيّن</p></figcaption></figure></div>

</details>

<details>

<summary>مثال على الكود للنسخ</summary>

`/إنشاء وسم/ a=create_label('tag1')`

`/إسناد وسم إلى العميل/ a=add_label('stage 1')`

`/التحقق مما إذا كان العميل يملك وسمًا/ a=has_label('этап 1','73704021')`

`/عدّ عدد العملاء الذين لديهم وسم معيّن/ etap1=count_of_clients_with_label('stage 1') tovar1=count_of_clients_with_label('1')`

</details>

## إنشاء وسم

<details>

<summary>الوصف</summary>

**create\_label(label\_name)** - ينشئ وسم MaviBot بالاسم المحدد

المعلمات:

<mark style="color:red;">**!**</mark>**&#x20;label\_name**- اسم الوسم، يُحدَّد بين علامتي اقتباس مفردتين ('')

</details>

### إنشاء وسم بدون تكرارات

<details>

<summary>الوصف</summary>

**create\_label\_if\_not\_exist(name, color) -** ينشئ وسمًا جديدًا إذا لم يكن هناك وسم بالاسم نفسه بعد، ويُرجع معرّفه؛ وإلا يُرجع معرّف الوسم الموجود

**name** — اسم الوسم

**color** — لون الوسم (الافتراضي: 0)

جدول الألوان لـ **color** المعلمة:

0 — رمادي فاتح&#x20;

1 — أصفر

2 — أزرق&#x20;

3 — أحمر

4 — وردي

5 — بيج&#x20;

6 — بنفسجي

7 — أزرق فاتح&#x20;

8 — رمادي

9 - أخضر

</details>

### الحصول على جميع وسوم العميل

<details>

<summary>الوصف</summary>

**get\_all\_client\_labels(client\_id)**&#x20;

***المعلمات:***

**client\_id** - اختياري؛ إذا لم يُقدَّم، فسيتم جلب وسوم العميل الحالي.

تُرجع الدالة استجابة بصيغة JSON: {"161":"tag1","228":"tag2"}، حيث: المفتاح هو معرّف الوسم، والقيمة هي اسم الوسم

</details>

<details>

<summary>مثال</summary>

<figure><img src="/files/b0406517816d639757bf7deb223116e68e2a6d35" alt="" width="375"><figcaption><p>الحصول على جميع وسوم العميل الحالي</p></figcaption></figure>

</details>

### حذف وسوم العميل بواسطة مصفوفة

<details>

<summary>الوصف</summary>

**remove\_multiple\_client\_labels(labels\_array, names) -** يحذف الوسوم المحددة في المصفوفة

**labels\_array** - مصفوفة الوسوم. <mark style="color:$primary;">OR</mark> <mark style="color:orange;">**معرّف**</mark> مصفوفة<mark style="color:orange;">**,**</mark> <mark style="color:$primary;">OR</mark> <mark style="color:orange;">**names**</mark> مصفوفة.&#x20;

<mark style="color:orange;">إذا تم تمرير مصفوفة الأسماء</mark>بخدمة أخرى<mark style="color:orange;">❗من الضروري تمرير المعامل الثاني (names) مضبوطًا على 1.</mark>

**names** - اضبطه على 1 إذا كانت المصفوفة تحتوي على أسماء الوسوم بدلًا من المعرفات. وهذا يدل على أن المصفوفة تتكوّن من أسماء.

{% hint style="danger" %}
لا يُسمح بدمج معرّفات الوسوم وأسماء الوسوم في الدالة نفسها!
{% endhint %}

</details>

<details>

<summary>مثال</summary>

`/*حذف الوسوم حسب المعرّف*/`

`r = remove_multiple_client_labels('[138,169,166]')`&#x20;

`/*حذف الوسوم حسب اسم الوسم*/`

`r2 = remove_multiple_client_labels('["newTestTag","tag2"]', 1)`

يخزن المتغير نتيجة تنفيذ الدالة: إما رسالة خطأ أو عددًا يوضح كم وسمًا تم حذفه.

<div data-with-frame="true"><figure><img src="/files/8e4fea29d5c521240610aaae641249da20f60f0f" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

### العثور على العملاء عبر عدة وسوم

<details>

<summary>الوصف</summary>

**find\_clients\_by\_multiple\_labels(labels\_array, names)** - يجد العملاء عبر عدة وسوم

{% hint style="warning" %}
مهم! يعثر هذا فقط على العملاء الذين لديهم جميع الوسوم المحددة.
{% endhint %}

المعلمات:

**labels\_array** - مصفوفة الوسوم. <mark style="color:$primary;">OR</mark> <mark style="color:orange;">**معرّف**</mark> مصفوفة<mark style="color:orange;">**,**</mark> <mark style="color:$primary;">OR</mark> <mark style="color:orange;">**names**</mark> مصفوفة.&#x20;

<mark style="color:orange;">إذا تم تمرير مصفوفة الأسماء</mark>بخدمة أخرى<mark style="color:orange;">❗من الضروري تمرير المعامل الثاني (names) مضبوطًا على 1.</mark>

**names** - اضبطه على 1 إذا كانت المصفوفة تحتوي على أسماء الوسوم بدلًا من المعرفات. وهذا يدل على أن المصفوفة تتكوّن من أسماء.

{% hint style="danger" %}
لا يُسمح بدمج معرّفات الوسوم وأسماء الوسوم في الدالة نفسها!
{% endhint %}

يُرجع مصفوفة من معرّفات العملاء (client\_id): \[41121, 41192, 41522]

</details>

<details>

<summary>مثال</summary>

`/*العثور على العملاء الذين لديهم جميع الوسوم المحددة حسب المعرّف*/`

`r = find_clients_by_multiple_labels('[138,169,166]')`&#x20;

`/*العثور على العملاء الذين لديهم جميع الوسوم المحددة حسب أسماء الوسوم*/`

`r2 = find_clients_by_multiple_labels('["newTestTag","tag2"]', 1)`

<div data-with-frame="true"><figure><img src="/files/190ad477ff30b8af5306ac2fe36e2f03021ee1c5" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

### التحقق من مصفوفة وسوم العميل

<details>

<summary>الوصف</summary>

**has\_client\_multiple\_labels(labels\_array, names)** - يتحقق من مصفوفة وسوم العميل

{% hint style="warning" %}
مهم! تُرجع **True** إذا كان لدى العميل جميع الوسوم المحددة!
{% endhint %}

المعلمات:

**labels\_array** - مصفوفة الوسوم. <mark style="color:$primary;">OR</mark> <mark style="color:orange;">**معرّف**</mark> مصفوفة<mark style="color:orange;">**,**</mark> <mark style="color:$primary;">OR</mark> <mark style="color:orange;">**names**</mark> مصفوفة.&#x20;

<mark style="color:orange;">إذا تم تمرير مصفوفة الأسماء</mark>بخدمة أخرى<mark style="color:orange;">❗من الضروري تمرير المعامل الثاني (names) مضبوطًا على 1.</mark>

**names** - اضبطه على 1 إذا كانت المصفوفة تحتوي على أسماء الوسوم بدلًا من المعرفات. وهذا يدل على أن المصفوفة تتكوّن من أسماء.

{% hint style="danger" %}
لا يُسمح بدمج معرّفات الوسوم وأسماء الوسوم في الدالة نفسها!
{% endhint %}

وتُرجع إما **خطأ**، أو **True** إذا كان لدى العميل جميع الوسوم من المصفوفة، أو **خطأ** إذا لم يكن لدى العميل جميع الوسوم.

</details>

<details>

<summary>مثال</summary>

`/*التحقق مما إذا كان لدى العميل جميع الوسوم المحددة حسب المعرّف*/`

`r = has_client_multiple_labels('[138,169,166]')`

`/*التحقق مما إذا كان لدى العميل جميع الوسوم المحددة حسب أسماء الوسوم*/`

&#x20;`r2 = has_client_multiple_labels('["newTestTag","tag2"]', 1)`

<div data-with-frame="true"><figure><img src="/files/ee305b11107b63bea8cb08ffed97b38de65dce6b" alt="" width="563"><figcaption></figcaption></figure></div>

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ar/chatbot/functions/alaalh-alhasbh/tags.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
