Skip to main content
#P1112

Function listServicesCharter

·  هدف:

این متد لیستی از سرویس‌های قابل ارائه در سیستم را بر اساس نوع چارتر (مسیر یا اقامتگاه) فیلتر کرده و برمی‌گرداند. این سرویس‌ها می‌توانند شامل مواردی مانند ترانسفر فرودگاهی، وعده‌های غذایی، بیمه مسافرتی و… باشند. این تابع به پنل کاربری کمک می‌کند تا هنگام تعریف یا ویرایش یک چارتر، فقط سرویس‌های مرتبط با آن نوع چارتر را به کاربر نمایش دهد و از انتخاب سرویس‌های نامرتبط جلوگیری کند.

ویژگی‌ها توضیحات
هدف کلی دریافت لیست سرویس‌های موجود بر اساس نوع چارتر.
عملیات اتمی (Atomic) نمایش سرویس‌های مرتبط با route (مسیر) یا accommodation (اقامتگاه).
پشتیبانی از انواع چارتر ارائه خروجی در قالب استاندارد شامل شناسه و عنوان سرویس.
موتور تکرار (Repeat Engine) با افزودن انواع جدید سرویس در دیتابیس، خروجی این متد نیز به روز می‌شود.

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

 

توضیحات موقعیت نوع داده نام پارمتر
(اجباری) نوع چارتر که سرویس‌ها برای آن درخواست شده است. مقادیر معتبر route یا accommodation هستند. Query String string $request->type

·     خروجی (Return):

 

توضیحات نوع داده
در صورت موفقیت، یک پاسخ با کد 200 OK حاوی آرایه‌ای از آبجکت‌های سرویس برمی‌گرداند. هر آبجکت شامل id و title سرویس است. Illuminate\Http\JsonResponse
در صورت بروز خطا، یک پاسخ با کد 400 Bad Request حاوی جزئیات خطا برمی‌گرداند. Illuminate\Http\JsonResponse

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

سناریو: دریافت لیست تمام سرویس‌های قابل ارائه برای یک چارتر از نوع “مسیر” (route).

  • Request URL:

GET /api/panel/v2/charter/list-services?type=route

text
*   **Action:**
    1.  متد پارامتر `type=route` را دریافت می‌کند.
    2.  به جدول `charter_services_types` کوئری می‌زند و تمام رکوردهایی که ستون `route` آن‌ها برابر با `1` است را انتخاب می‌کند.
    3.  فیلدهای `id` و `title` را از نتایج استخراج کرده و در قالب یک آرایه JSON برمی‌گرداند.
*   **Response Body (مثال):**
```json
{
"payload": [
{
"id": 1,
"title": "ترانسفر فرودگاهی"
},
{
"id": 3,
"title": "بیمه مسافرتی"
},
{
"id": 5,
"title": "راهنمای تور"
}
],
"meta": {
"timestamp": 1678886400
}
}
    ```

---

**مرحله ۴ هم به پایان رسید.**

لطفاً این بخش را نیز به مستندات خود اضافه کنید. پس از تایید شما، به سراغ **مرحله ۵: `storeRefundCharterReservation` (شماره ۱۵)** خواهیم رفت.