# Function listCommunicationsCharter

### <a name="func_1"></a>

#### <span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·</span></span><span lang="AR-SA"><span style="mso-spacerun: yes;"> </span>هدف:</span>

این متد برای جستجو و واکشی “ارتباطات” (Communications) بین چارترها طراحی شده است. یک ارتباط، اتصال منطقی بین دو چارتر یا آیتم‌های آن‌ها را نشان می‌دهد (مثلاً برای ساخت پکیج‌های تور رفت و برگشت از دو چارتر مجزا). هدف اصلی متد، فراهم کردن یک ابزار فیلترینگ قدرتمند برای یافتن این ارتباطات بر اساس پارامترهای مختلفی مانند شناسه چارتر مبدأ/مقصد، شناسه آیتم مبدأ/مقصد، یا حتی مبدأ و مقصد جغرافیایی است. برای فیلتر بر اساس مبدأ/مقصد جغرافیایی، متد ابتدا تمام چارترهای فعال با آن مبدأ/مقصد را پیدا کرده و سپس از شناسه‌های آن‌ها برای فیلتر کردن جدول `charter_communications` استفاده می‌کند. خروجی نهایی با استفاده از `CharterResource` غنی‌سازی شده و اطلاعات کاملی از هر دو طرف ارتباط (مبدأ و مقصد) را ارائه می‌دهد.

<table border="1" class="align-center" id="bkmrk-%D9%88%DB%8C%DA%98%DA%AF%DB%8C%E2%80%8C%D9%87%D8%A7-%D8%AA%D9%88%D8%B6%DB%8C%D8%AD%D8%A7%D8%AA-%D9%87%D8%AF%D9%81" style="border-collapse: collapse; width: 80.9524%; height: 291.5px; background-color: rgb(236, 202, 250); border: 1px inset rgb(206, 212, 217);"><colgroup><col style="width: 50.0736%;"></col><col style="width: 50.0736%;"></col></colgroup><thead><tr style="height: 30.7969px;"><td style="height: 30.7969px; border-color: rgb(206, 212, 217); background-color: rgb(132, 63, 161);"><span style="color: rgb(255, 255, 255);">**<span lang="AR-SA" style="font-family: 'B Titr';">ویژگی‌ها</span>**</span></td><td style="height: 30.7969px; border-color: rgb(206, 212, 217); background-color: rgb(132, 63, 161);"><span style="color: rgb(255, 255, 255);">**<span lang="AR-SA" style="font-family: 'B Titr';">توضیحات</span>**</span></td></tr></thead><tbody><tr style="height: 29.7969px; background-color: rgb(206, 212, 217);"><td style="height: 29.7969px; border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250);"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">هدف کلی</span>**</span></td><td style="height: 29.7969px; border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250);"><span lang="AR-SA" style="color: rgb(0, 0, 0);">جستجو و نمایش ارتباطات تعریف‌شده بین چارترها.</span></td></tr><tr style="height: 29.7969px; background-color: rgb(206, 212, 217);"><td style="height: 29.7969px; border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255);"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">فیلترینگ جامع</span>**</span></td><td style="height: 29.7969px; border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255);"><span lang="AR-SA" style="color: rgb(0, 0, 0);">قابلیت فیلتر بر اساس شناسه چارتر/آیتم مبدأ و مقصد.</span></td></tr><tr style="height: 47.2188px; background-color: rgb(206, 212, 217);"><td style="height: 47.2188px; border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250);"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">فیلتر جغرافیایی</span>**</span></td><td style="height: 47.2188px; border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250);"><span style="color: rgb(0, 0, 0);">پشتیبانی از فیلتر بر اساس شهر مبدأ (`origin`) و مقصد (`destination`).</span></td></tr><tr style="height: 46.5938px; background-color: rgb(206, 212, 217);"><td style="height: 46.5938px; border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255);"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">صفحه‌بندی</span>**</span></td><td style="height: 46.5938px; border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255);"><span style="color: rgb(0, 0, 0);">مدیریت خودکار صفحه‌بندی نتایج بر اساس پارامترهای ورودی.</span></td></tr><tr style="height: 46.9062px;"><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 46.9062px;"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">غنی‌سازی خروجی</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 46.9062px;"><span style="color: rgb(0, 0, 0);">استفاده از `CharterResource::getInformation` برای افزودن جزئیات کامل چارترها به هر نتیجه.</span></td></tr><tr style="height: 60.3906px;"><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 60.3906px;"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">کاربرد اصلی</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 60.3906px;"><span style="color: rgb(0, 0, 0);">مدیریت و نمایش پکیج‌های تور یا مسیرهای متصل به هم.</span></td></tr></tbody></table>

<div align="right" id="bkmrk-"></div>---

#### <span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="AR-SA">ورودی</span><span lang="FA" style="font-family: 'Calibri',sans-serif; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-language: FA;">‌ها (پارامتر‌ها):</span>

<span dir="LTR"> </span>

<table border="1" class="align-center" id="bkmrk-%D8%AA%D9%88%D8%B6%DB%8C%D8%AD%D8%A7%D8%AA-%D9%86%D9%88%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%86%D8%A7%D9%85" style="border-collapse: collapse; width: 80.9697%; height: 251.031px; background-color: rgb(236, 202, 250); border: 1px inset rgb(206, 212, 217);"><colgroup><col style="width: 50.075%;"></col><col style="width: 12.4438%;"></col><col style="width: 12.4438%;"></col><col style="width: 25.0375%;"></col></colgroup><thead><tr style="height: 30.7969px;"><td style="height: 30.7969px; border-color: rgb(206, 212, 217); background-color: rgb(132, 63, 161);"><span style="color: rgb(255, 255, 255);">**<span lang="AR-SA" style="font-family: 'B Titr';">توضیحات</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(132, 63, 161); height: 30.7969px;"><span style="color: rgb(255, 255, 255);">**<span lang="AR-SA" style="font-family: 'B Titr';">موقعیت</span>**</span></td><td style="height: 30.7969px; border-color: rgb(206, 212, 217); background-color: rgb(132, 63, 161);"><span style="color: rgb(255, 255, 255);">**<span lang="AR-SA" style="font-family: 'B Titr';">نوع داده</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(132, 63, 161); height: 30.7969px;"><span style="color: rgb(255, 255, 255);">**<span lang="AR-SA" style="font-family: 'B Titr';">نام پارمتر</span>**</span></td></tr></thead><tbody><tr style="height: 32.2188px;"><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 32.2188px;"><span style="color: rgb(0, 0, 0);">**شناسه چارتر مبدأ.**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 32.2188px;">**<span style="color: black; mso-color-alt: windowtext;">`Query`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 32.2188px;">**<span style="color: black; mso-color-alt: windowtext;">`integer`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 32.2188px;"><span style="color: rgb(0, 0, 0);">**`main_id`**</span></td></tr><tr style="height: 31.875px;"><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 31.875px;"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">شناسه آیتم مبدأ.</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 31.875px;">**<span style="color: black; mso-color-alt: windowtext;">`Query`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 31.875px;">**<span style="color: black; mso-color-alt: windowtext;">`integer`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 31.875px;"><span lang="AR-SA" style="color: rgb(0, 0, 0);">**<span style="color: black; mso-color-alt: windowtext;">`item_id`</span>**</span></td></tr><tr style="height: 34.2188px;"><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 34.2188px;"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">شناسه چارتر مقصد در ارتباط.</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 34.2188px;">**<span style="color: black; mso-color-alt: windowtext;">`Query`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 34.2188px;">**<span style="color: black; mso-color-alt: windowtext;">`integer`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 34.2188px;"><span lang="AR-SA" style="color: rgb(0, 0, 0);">**<span style="color: black; mso-color-alt: windowtext;">`destination_main_id`</span>**</span></td></tr><tr style="height: 31.5938px;"><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 31.5938px;"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">شناسه آیتم مقصد در ارتباط.</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 31.5938px;">**<span style="color: black; mso-color-alt: windowtext;">`Query`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 31.5938px;">**<span style="color: black; mso-color-alt: windowtext;">`integer`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 31.5938px;"><span lang="AR-SA" style="color: rgb(0, 0, 0);">**<span style="color: black; mso-color-alt: windowtext;">`destination_item_id`</span>**</span></td></tr><tr style="height: 30.1094px;"><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 30.1094px;"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">شناسه شهر مبدأ برای جستجوی جغرافیایی.</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 30.1094px;">**<span style="color: black; mso-color-alt: windowtext;">`Query`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 30.1094px;">**<span style="color: black; mso-color-alt: windowtext;">`integer`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 30.1094px;"><span lang="AR-SA" style="color: rgb(0, 0, 0);">**<span style="color: black; mso-color-alt: windowtext;">`origin`</span>**</span></td></tr><tr style="height: 30.1094px;"><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 30.1094px;"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">شناسه شهر مقصد برای جستجوی جغرافیایی.</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 30.1094px;">**<span style="color: black; mso-color-alt: windowtext;">`Query`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 30.1094px;">**<span style="color: black; mso-color-alt: windowtext;">`integer`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255); height: 30.1094px;"><span lang="AR-SA" style="color: rgb(0, 0, 0);">**<span style="color: black; mso-color-alt: windowtext;">`destination`</span>**</span></td></tr><tr style="height: 30.1094px;"><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 30.1094px;"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA">پارامترهای صفحه‌بندی (`length`, `start`).</span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 30.1094px;">**<span style="color: black; mso-color-alt: windowtext;">`Query`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 30.1094px;">**<span style="color: black; mso-color-alt: windowtext;">`array`</span>**</td><td style="border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250); height: 30.1094px;"><span lang="AR-SA" style="color: rgb(0, 0, 0);">**<span style="color: black; mso-color-alt: windowtext;">`paginate`</span>**</span></td></tr></tbody></table>

<div align="right" id="bkmrk--2"></div>---

#### <span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="AR-SA">خروجی</span><span dir="LTR"> (Return)</span><span lang="FA" style="font-family: 'Calibri',sans-serif; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-language: FA;">:</span>

<span dir="LTR"> </span>

<div align="right" id="bkmrk-%D8%AA%D9%88%D8%B6%DB%8C%D8%AD%D8%A7%D8%AA-%D9%86%D9%88%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D8%B1%D8%B4%D8%AA"></div><table border="1" class="align-center" id="bkmrk-%D8%AA%D9%88%D8%B6%DB%8C%D8%AD%D8%A7%D8%AA-%D9%86%D9%88%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D8%B1%D8%B4%D8%AA-1" style="border-collapse: collapse; width: 80.9524%; height: 127.734px; background-color: rgb(236, 202, 250); border: 1px inset rgb(206, 212, 217);"><colgroup><col style="width: 50.0736%;"></col><col style="width: 50.0736%;"></col></colgroup><thead><tr style="height: 30.7969px;"><td style="height: 30.7969px; border-color: rgb(206, 212, 217); background-color: rgb(132, 63, 161);"><span style="color: rgb(255, 255, 255);">**<span lang="AR-SA" style="font-family: 'B Titr';">توضیحات</span>**</span></td><td style="height: 30.7969px; border-color: rgb(206, 212, 217); background-color: rgb(132, 63, 161);"><span style="color: rgb(255, 255, 255);">**<span lang="AR-SA" style="font-family: 'B Titr';">نوع داده</span>**</span></td></tr></thead><tbody><tr style="height: 48.4688px; background-color: rgb(206, 212, 217);"><td style="height: 48.4688px; border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250);"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA"><span dir="RTL" lang="AR-SA" style="font-size: 11.0pt; line-height: 107%; font-family: 'B Nazanin'; mso-ascii-font-family: 'B Nazanin'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: 'B Nazanin'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">یک آبجکت `JSON` با کلید `items` (آرایه‌ای از آبجکت‌های ارتباط) و `meta`. هر آبجکت ارتباط شامل جزئیات کامل چارتر مبدأ (`charter`) و چارتر مقصد (`communication_charter`) است.</span></span>**</span></td><td style="height: 48.4688px; border-color: rgb(206, 212, 217); background-color: rgb(236, 202, 250);"><span lang="AR-SA" style="color: rgb(0, 0, 0);">**<span style="font-size: 11.0pt; line-height: 107%; font-family: 'B Nazanin'; mso-ascii-font-family: 'B Nazanin'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: 'B Nazanin'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">`Illuminate\Http\JsonResponse`</span>**</span></td></tr><tr><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255);"><span style="color: rgb(0, 0, 0);">**<span lang="AR-SA"><span dir="RTL" lang="AR-SA" style="font-size: 11.0pt; line-height: 107%; font-family: 'B Nazanin'; mso-ascii-font-family: 'B Nazanin'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: 'B Nazanin'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">در صورت بروز خطا، یک پاسخ با کد `400 Bad Request`</span></span>**</span></td><td style="border-color: rgb(206, 212, 217); background-color: rgb(255, 255, 255);"><span lang="AR-SA" style="color: rgb(0, 0, 0);">**<span style="font-size: 11.0pt; line-height: 107%; font-family: 'B Nazanin'; mso-ascii-font-family: 'B Nazanin'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: 'B Nazanin'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">`Illuminate\Http\JsonResponse`</span>**</span></td></tr></tbody></table>

---

#### <span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·</span></span><span lang="AR-SA"><span style="mso-spacerun: yes;"> </span>مثا</span>ل استفاده / سناریو:

**<span style="text-decoration: underline; background-color: rgb(251, 238, 184);">سناریو</span>: یافتن تمام ارتباط‌هایی که از تهران شروع می‌شوند**

- **Request URL:** `/api/panel/v2/charter/communication/list?origin=1`
- **Action:**

1. متد ابتدا تمام شناسه‌های چارترهای فعال که مبدأ آن‌ها `1` (تهران) است را از جدول `charters` استخراج می‌کند.
2. سپس یک کوئری به جدول `charter_communications` می‌زند و با استفاده از `WHERE IN ('main_id', ...)` نتایج را به چارترهای یافت‌شده در مرحله قبل محدود می‌کند.
3. نتایج صفحه‌بندی می‌شوند.
4. برای هر نتیجه، اطلاعات کامل چارتر مبدأ و مقصد واکشی و به خروجی اضافه می‌شود.

- **Response:**
- `HTTP Status`: `200 OK`
- `Body`: `{"items": [{ "id": 1, "main_id": 101, "communication_main_id": 202, "charter": {...info for charter 101...}, "communication_charter": {...info for charter 202...} }, ...], "meta": {...}}`