Skip to main content
#P1787

GET /b2c/v1/base/data


Get Base Data (Cities, Trains, Configs)

این اندپوینت مرکزی برای دریافت داده‌های پایه (Base Data) و لیست‌های انتخابی (Select Options) در سیستم استفاده می‌شود.
عملکرد داینامیک: خروجی این سرویس کاملاً وابسته به پارامتر ورودی subject است. این متد برای پر کردن لیست شهرها، ایستگاه‌های قطار، فرودگاه‌ها و تنظیمات هتل کاربرد دارد.




Fetch Base Data

URL: /b2c/v1/base/data
Method: GET
Controller: V1BaseController@baseData
Auth: Public / Optional

Query Parameters (پارامترهای ورودی)

Parameter Type Required Description
subject String Yes* نوع داده درخواستی. مقادیر مجاز:
  • cities (لیست شهرها)
  • train_companies (شرکت‌های ریلی)
  • train_types (انواع قطار: ۴ ستاره و...)
  • train_stations (ایستگاه‌های قطار)
  • room_rate (انواع نرخ اتاق هتل)
  • room_view (انواع چشم‌انداز اتاق)
  • airports (لیست فرودگاه‌ها)
search String No عبارت جستجو (برای شهرها، ایستگاه‌ها و شرکت‌ها).
state Integer No شناسه استان (جهت فیلتر کردن شهرها یا ایستگاه‌ها بر اساس استان).
type String No فقط برای subject=cities کاربرد دارد.
اگر مقدار train ارسال شود، فقط شهرهایی که دارای ایستگاه قطار هستند بازگردانده می‌شوند.
action String No حالت خاص: اگر مقدار airports باشد، فرمت خروجی جیسون تغییر می‌کند.
route Integer No فقط برای فرودگاه‌ها (1 یا 2) - جهت سورت یا فیلتر خاص (در کد فعلی منطق مشابه است).

Response Structure

ساختار پاسخ بسته به subject متفاوت است، اما به طور کلی در فرمت زیر است:

{
    "items": [ ...Array of Data... ],
    "meta": {
        "timestamp": 1702123456
    }
}

Examples per Subject (مثال‌ها بر اساس موضوع)

۱. شهرها (subject=cities):

{
    "items": [
        {
            "id": 10,
            "title": { "fa": "تهران", "en": "Tehran" },
            "category": {
                "id": 5,
                "title": { "fa": "تهران", "en": "Tehran" } // نام استان
            }
        }
    ],
    "meta": { ... }
}

۲. انواع قطار (subject=train_types):

{
    "items": [
        {
            "id": 1,
            "title": { "fa": "4 ستاره اتوبوسی", "en": false },
            "details": {
                "type": "bus",
                "star": 4
            }
        }
    ],
    "meta": { ... }
}

۳. نرخ/دید اتاق (subject=room_rate / room_view):

{
    "items": [
        {
            "title": { "fa": "برد", "en": "Board" },
            "status": "1",
            "selected": "0"
        }
    ],
    "meta": { ... }
}

۴. حالت خاص فرودگاه (action=airports):

اگر پارامتر action=airports ارسال شود، ساختار پاسخ متفاوت است:

{
    "status": true,
    "time": 1702123456,
    "data": {
        "titles": [
            {
                "id": 1,
                "iata": "MHD",
                "title": "Mashhad",
                "title_fa": "مشهد",
                "country": 1,
                "group_by": "ایران",
                "state": "خراسان رضوی"
                ...
            }
        ]
    }
}

Technical Logic

Request (GET)
Check `subject`?
cities
If type='train' → Filter IDs from `train_stations`
Search/State Filter
train_*
Query `train_companies`, `types`, or `stations`
room_*
Decode JSON from `hotel_titles` table
airports
Join Countries & States
Is `action` == 'airports'?
↓ Yes
Custom Format
{"status": true, "data": ...}
↓ No
Standard Format
{"items": [...], "meta": ...}