Skip to main content
#P1423

GET /api/v2/flights/approved-rate

Route Info

Method Endpoint Controller Middleware Purpose
GET /api/v2/flights/approved-rate V2TradeController@flightsApprovedRate authWithJwt نمایش داده‌های آخرین نرخ‌های مصوب پروازی (Approved Flight Rate)

منطق عملکرد

  • تمام رکوردهای جدول approved_flight_rate با status = 1 دریافت می‌شوند.
  • با استخراج داده فرودگاه‌ها از جدول airports، عنوان فارسی و انگلیسی مبدأ و مقصد هر مسیر تکمیل می‌شود.
  • برای هر مسیر، روزهای فعال از جدول airline_active_route واکشی و خطوط هوایی مرتبط از airlines به آن‌ها نگاشت می‌شوند.
  • خروجی نهایی شامل مسیرها با جزئیات کامل، محدوده حداقل/حداکثر قیمت و آخرین تاریخ به‌روزرسانی است.

پارامترهای ورودی

فاقد ورودی خاص است (بدون پارامترهای Query یا Body).

GET /api/v2/flights/approved-rate
Authorization: Bearer 

ساختار خروجی

{
  "items": [
    {
      "route_id": 92,
      "origin": {
        "iata": "THR",
        "title": {
          "fa": "تهران (THR)",
          "en": "Tehran (THR)"
        }
      },
      "destination": {
        "iata": "MHD",
        "title": {
          "fa": "مشهد (MHD)",
          "en": "Mashhad (MHD)"
        }
      },
      "least": 1450000,
      "most": 4980000,
      "active_days": [
        {
          "day": "monday",
          "airline": {
            "iata": "IR",
            "title": {"fa": "ایران‌ایر", "en": "IranAir"}
          }
        }
      ]
    }
  ],
  "payload": {"update_at": "2025-11-15 08:41:00"},
  "meta": {"timestamp": 1732028300}
}

امنیت

  • JWT الزامی است.
  • دسترسی به داده‌ها فقط در سطح مشاهده است؛ بدون اجازه‌ی ویرایش.

وابستگی‌ها

  • DB::table('approved_flight_rate')
  • DB::table('airports')
  • DB::table('airlines')
  • DB::table('airline_active_route')

کارایی

در اکثر محیط‌ها (< 60 ms) به دلیل cache سیستم DB و join‌های کم‌عمق انجام می‌شود.

مدیریت خطا

  • در صورت خطا در SQL یا Map داده‌ها، Exception با HTTP 400 بازگردانده می‌شود.
  • ویژگی trace شامل مسیر کامل stack جهت خطایابی است.

اثرات جانبی

فاقد اثر جانبی؛ صرفاً واکشی داده‌ها.

ردپای حسابرسی

در این روت لاگ ثبت نمی‌شود، ولی فراخوانی‌های DB در Logهای سطح سیستم ردگیری می‌گردد.

پیشنهاد بهبود

  • افزودن پارامتر Query برای فیلتر بر اساس مبدا، مقصد یا خطوط هواپیمایی.
  • ایجاد cache json در سطح application.

جمع‌بندی

این Endpoint به عنوان سرویس اطلاعات مرجع نرخ‌های رسمی پروازی عمل می‌کند و در ماژول Flight Rate Monitor استفاده می‌شود.