Skip to main content
#P1096

Function listCommunicationsCharter

·  هدف:

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

ویژگی‌ها توضیحات
هدف کلی جستجو و نمایش ارتباطات تعریف‌شده بین چارترها.
فیلترینگ جامع قابلیت فیلتر بر اساس شناسه چارتر/آیتم مبدأ و مقصد.
فیلتر جغرافیایی پشتیبانی از فیلتر بر اساس شهر مبدأ (origin) و مقصد (destination).
صفحه‌بندی مدیریت خودکار صفحه‌بندی نتایج بر اساس پارامترهای ورودی.
غنی‌سازی خروجی استفاده از CharterResource::getInformation برای افزودن جزئیات کامل چارترها به هر نتیجه.
کاربرد اصلی مدیریت و نمایش پکیج‌های تور یا مسیرهای متصل به هم.

·     ورودی‌ها (پارامتر‌ها):

 

توضیحات موقعیت نوع داده نام پارمتر
شناسه چارتر مبدأ. Query integer main_id
شناسه آیتم مبدأ. Query integer item_id
شناسه چارتر مقصد در ارتباط. Query integer destination_main_id
شناسه آیتم مقصد در ارتباط. Query integer destination_item_id
شناسه شهر مبدأ برای جستجوی جغرافیایی. Query integer origin
شناسه شهر مقصد برای جستجوی جغرافیایی. Query integer destination
پارامترهای صفحه‌بندی (length, start). Query array paginate

·     خروجی (Return):

 

توضیحات نوع داده
یک آبجکت JSON با کلید items (آرایه‌ای از آبجکت‌های ارتباط) و meta. هر آبجکت ارتباط شامل جزئیات کامل چارتر مبدأ (charter) و چارتر مقصد (communication_charter) است. Illuminate\Http\JsonResponse
در صورت بروز خطا، یک پاسخ با کد 400 Bad Request Illuminate\Http\JsonResponse

·  مثال استفاده / سناریو:

سناریو: یافتن تمام ارتباط‌هایی که از تهران شروع می‌شوند

  • 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": {...}}