#P1112
Function listServicesCharter
· هدف:
این تابع،متد موتورلیستی اصلیاز وسرویسهای بسیارقابل پیچیدهی ایجاد چارترهای جدیدارائه در سیستم است که به عنوان یک نقطه پایانی واحد، قابلیت تعریف انواع مختلف چارتر با پیکربندیهای گوناگون را فراهم میکند. هدف اصلی آن، دریافت یک ساختار دادهی پیچیده از کلاینت، پردازش آن بر اساس نوع چارتر (مسیر یا routeaccommodation)اقامتگاه) فیلتر کرده و منطقبرمیگرداند. تکراراین (repeat)،سرویسها ومیتوانند درشامل نهایتمواردی ثبتمانند مجموعهایترانسفر ازفرودگاهی، رکوردهاوعدههای درغذایی، پایگاهبیمه دادهمسافرتی بهو… صورت اتمی و یکپارچه است.باشند. این تابع تمامبه عملیاتهایپنل خودکاربری راکمک درونمیکند تا هنگام تعریف یا ویرایش یک چارتر، DB::transactionقرارفقط میدهد تا اطمینان حاصل شود که یا تمام مراحل (شامل ایجاد چارتر اصلی، کلاسسرویسهای قیمتی، مالیاتها و دورههای تکرار)مرتبط با موفقیتآن انجامنوع میشوند، یا در صورت بروز کوچکترین خطا، تمام تغییرات به حالت اولیه بازمیگردند (rollback). این رویکرد، از ایجاد دادههای ناقص یا متناقض در دیتابیس جلوگیری میکند. این متد همچنین مسئولیت آمادهسازی دادههای پیچیدهای مانند مسیرهای رفت و برگشت (inbound/outbound) و تولید تاریخهای تکرار بر اساس الگوهای مختلف (dates, weekly, periodic) را بر عهده دارد و در نهایت، خلاصهای از شناسههای ایجاد شدهچارتر را به عنوانکاربر خروجینمایش بازمیگرداند.
دهد و از انتخاب سرویسهای نامرتبط جلوگیری کند.
| ویژگیها | توضیحات |
| هدف کلی | |
| عملیات اتمی (Atomic) | accommodation |
| پشتیبانی از انواع چارتر | شامل عنوان |
| موتور تکرار (Repeat Engine) | |
| |
· ورودیها (پارامترها):
| توضیحات | موقعیت | نوع داده | نام پارمتر |
route accommodation هستند. |
| | |
|
string |
$request->type | |
| | | |
| | ||
| | ||
| | | |
| | | |
| | |
· خروجی (Return):
| توضیحات | نوع داده |
و سرویس است. |
Illuminate\Http\JsonResponse |
در صورت بروز خطا، یک پاسخ با کد 400 |
Illuminate\Http\JsonResponse |
· مثالمثال استفاده:استفاده / سناریو:
سناریو: //دریافت سناریو:لیست ایجادتمام سرویسهای قابل ارائه برای یک چارتر پروازاز هفتگینوع برای“مسیر” روزهای(route).
- Request
دوشنبهURL:
GET /api/panel/v2/charter/storelist-services?type=route
* **Action:**
1. متد پارامتر `type=route` را دریافت میکند.
2. به جدول `charter_services_types` کوئری میزند و تمام رکوردهایی که ستون `route` آنها برابر با `1` است را انتخاب میکند.
3. فیلدهای `id` و `title` را از نتایج استخراج کرده و در قالب یک آرایه JSON برمیگرداند.
* **Response Body (JSON)مثال):**
```json
{
"type": "route",
"subtype": "aircraft",
"capacity": 180,
"description": "چارتر هفتگی تهران-مشهد",
"permissions": { /* ... */ },
"repeat": {
"type": "weekly",
"from": "1404/08/01",
"to": "1404/08/30",
"days"payload": [6, 1] // شنبه و دوشنبه
},
"items": [
{
"details": {
"origin":
{
"id": 1,
"name"title": "THR"ترانسفر فرودگاهی"
},
"destination":
{
"id": 2,3,
"name"title": "MHD"بیمه مسافرتی"
},
{
"datetime"id": 5,
"title": "1404/08/04راهنمای 10:30", // تاریخ یکی از روزهای الگو (یکشنبه)
"vehicle": { /* ... */ }
}تور"
}
],
"calculations"meta": [ {
"name"timestamp": "اکونومی",
"capacity": 150,
"financial": { /* ... */ }
},
{
"name": "بیزنس",
"capacity": 30,
"financial": { /* ... */1678886400
}
}
]```
}---
//**مرحله خروجی۴ موردهم انتظاربه پایان رسید.**
لطفاً این بخش را نیز به مستندات خود اضافه کنید. پس از تایید شما، به سراغ **مرحله ۵: `storeRefundCharterReservation` (درشماره صورت۱۵)** موفقیت):خواهیم {
"main": [101, 102, 103, ...], // شناسههای چارترهای اصلی ایجاد شده برای هر تاریخ
"calculations": [201, 202, 203, ...], // شناسههای کلاسهای قیمتی
"taxes": [301, 302, ...], // شناسههای مالیاتها
"financial": [401, 402, ...] // شناسههای اطلاعات مالی
}
رفت.