Skip to main content
#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 → فیلتر byproduct
    • reference → مطابقت با شماره سریال (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 را بر می‌گرداند.