Skip to main content
#P1669

GET /v2/charter/communications

Charter: List Communications

این اندپوینت لیست "ارتباطات" (Communications) تعریف شده بین چارترها را برمی‌گرداند. این جدول معمولاً برای تعریف مسیرهای متصل (Connecting Flights) یا ارتباط بین یک چارتر اصلی و چارترهای وابسته استفاده می‌شود. خروجی شامل دو بخش اصلی src (چارتر مبدا) و dst (چارتر مقصد/متصل) است.

Request Overview

URL: /v2/charter/communications
Method: GET
Controller: CharterController@listCommunicationsCharter
Middleware Stack: authWithJwt

Access Control

  • دسترسی معتبر JWT

Request Parameters

Parameter Type Description
origin integer شناسه شهر مبدا.
سیستم ابتدا چارترهایی که origin آنها برابر این مقدار است را پیدا کرده و سپس در جدول ارتباطات جستجو می‌کند.
destination integer شناسه شهر مقصد (واسط).
توجه: سیستم چارترهایی که origin (مبدا) آن‌ها برابر با این مقدار است را پیدا می‌کند (منطق پرواز کانکشن: پرواز دوم از اینجا شروع می‌شود).
main_id integer شناسه مستقیم چارتر اصلی (Source Main ID)
item_id integer شناسه آیتم/کلاس چارتر اصلی (Source Item ID)
destination_main_id integer شناسه چارتر مقصد (Destination Main ID)
destination_item_id integer شناسه آیتم/کلاس چارتر مقصد (Destination Item ID)
paginate[length] integer تعداد آیتم در صفحه
paginate[start] integer آفست شروع

Logic Details

۱. فیلتر هوشمند مبدا و مقصد

این متد مستقیماً روی جدول charter_communications جستجو نمی‌کند، بلکه ابتدا شناسه‌های معتبر را از جدول charters استخراج می‌کند:

  • اگر origin ارسال شود: لیست ID چارترهایی که از این شهر شروع می‌شوند را می‌گیرد و در فیلد main_id جستجو می‌کند.
  • اگر destination ارسال شود: لیست ID چارترهایی که از این شهر شروع می‌شوند (به عنوان لگ دوم سفر) را می‌گیرد و در فیلد communication_main_id جستجو می‌کند.

۲. غنی‌سازی داده‌ها (Data Enrichment)

پس از دریافت لیست خام ارتباطات، برای هر رکورد توابع زیر صدا زده می‌شوند تا جزئیات کامل برگردانده شود:

  • getCommunicationsCharter: اطلاعات کلی پرواز/قطار (مبدا، مقصد، زمان).
  • getCommunicationsCalculation: اطلاعات کلاس نرخی (Business/Economy) یا نوع قطار (4 تخته و ...).

Response Structure

{
  "items": {
    "communication": [
      {
        "id": 501,
        "title": "Tehran to Mashhad (Connection)",
        "src": {
          "main": {
             "id": 100,
             "type": "route",
             "subtype": "aircraft",
             "information": { "origin": 1, "destination": 2, ... },
             "calculations": [...]
          },
          "item": {
             "class": { "iata": "Y", "title_en": "Economy", ... }
          },
          "type": "system" // source_type
        },
        "dst": {
          "main": { ... }, // اطلاعات چارتر دوم
          "item": { ... }, // اطلاعات کلاس چارتر دوم
          "type": "charter" // destination_type
        }
      }
    ]
  },
  "meta": {
    "timestamp": 1715000000,
    "table": { "total": 10, ... }
  }
}
  

Flowchart

Start (GET /communications)
ID Resolution
If Origin set? → Find Charters starting at Origin → Get IDs
If Dest set? → Find Charters starting at Dest → Get IDs
Query `charter_communications` (Apply Filters)
Paginate Results
Loop through items (Map)
Fetch SRC Charter Details
Get Class/Train Info
Fetch DST Charter Details
Get Class/Train Info
Format JSON Response