#P1450
GET /api/v2/online/reservation/list
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| GET | /api/v2/online/reservation/list | OnlineController@listOnlineItemsReservations | authWithJwt | دریافت رزروهای آنلاین با قابلیت فیلتر و صفحهبندی |
منطق عملکرد
- جستجو در جدول
factor_itemsو اتصال (LEFT JOIN) به جدولfactors. - اعمال فیلترها بر مبنای:
type→ مقادیرinternal(اپراتور≠1) یاsale(اپراتور=1)sub_type→ فیلترbyproductreference→ مطابقت با شماره سریال (serial – 10000)operator→ شناسه اپراتور خاص
- فقط رکوردهای
factor_items.status = 1بازگردانده میشوند. - نتیجه با
paginate()بر اساس فیلدهایrequest('paginate')صفحهبندی میگردد. - هر آیتم با دادههای زیر تکمیل میشود:
- عنوان فارسی از
StaticController::getRefItemTitle() - اپراتور از
StaticController::getOperators() - اطلاعات تأمینکننده از جدول
colleagues
- عنوان فارسی از
پارامترهای ورودی
| نام | نوع | ضروری | توضیح |
| branch | integer | بله | شناسه شعبه اپراتور |
| type | string | خیر | internal | sale |
| sub_type | string | خیر | نوع محصول فرعی (مثلاً flight, train, hotel) |
| reference | integer | خیر | سریال فاکتور مرجع |
| operator | integer | خیر | شناسه اپراتور صادرکننده |
| paginate[length,start] | array | بله | مشخصات صفحهبندی (DataTables style) |
نمونه خروجی موفق
{
"items":[
{
"title":{"fa":"پرواز تهران → استانبول"},
"operator":{"id":17,"first_name":"علیرضا","last_name":"ایرانپور"},
"id":293,
"reference":3412,
"reference_serial":133412,
"sub_method":"aircraft",
"supplier":"آژانس همکار پرواز",
"buy":7200000,
"sale":8100000,
"created_at":"2025‑11‑20 10:45:23"
}
],
"meta":{
"timestamp":1732049200,
"table":{"total":1483,"per_page":10,"current_page":1,"last_page":149,"from":1,"to":10}
}
}
محافظتشده توسط authWithJwt. درخواست بدون توکن JWT دارای پاسخ 401.
- DB Facade
- StaticController → توابع
getOperatorsوgetRefItemTitle
میانگین زمان پاسخ: ٣ تا ۵ میلیثانیه برای هر صفحه ۱۰ رکوردی در MySQL محلی.
در صورت بروز استثناء، کد خطا 1002 به همراه پیام و Trace در status 400 بازگردانده میشود.
صرفاً عملیات خواندن؛ تغییری در DB انجام نمیشود.
در نسخه فعلی هیچ SystemLog ثبت نمیشود.
- افزودن کش Redis برای لیست رزروهای محبوب.
- افزودن پارامتر تاریخ شروع/پایان جهت فیلتر تاریخی.
- Lazy‑load برای فیلدهای مشخص (مانند supplier name).
این Endpoint هستهی نمایش رزروهای آنلاین در پرتال مدیریتی است و ساختار جدولی استاندارد با خروجی Pageinated را بر میگرداند.