#P1669
GET /v2/charter/communications
Charter: List Communications
این اندپوینت لیست "ارتباطات" (Communications) تعریف شده بین چارترها را برمیگرداند. این جدول معمولاً برای تعریف مسیرهای متصل (Connecting Flights) یا ارتباط بین یک چارتر اصلی و چارترهای وابسته استفاده میشود. خروجی شامل دو بخش اصلی src (چارتر مبدا) و dst (چارتر مقصد/متصل) است.
Request Overview
URL:
/v2/charter/communicationsMethod: 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