#P1787
GET /b2c/v1/base/data
Get Base Data (Cities, Trains, Configs)
این اندپوینت مرکزی برای دریافت دادههای پایه (Base Data) و لیستهای انتخابی (Select Options) در سیستم استفاده میشود.
عملکرد داینامیک: خروجی این سرویس کاملاً وابسته به پارامتر ورودی subject است. این متد برای پر کردن لیست شهرها، ایستگاههای قطار، فرودگاهها و تنظیمات هتل کاربرد دارد.
Fetch Base Data
URL:
/b2c/v1/base/dataMethod: GET
Controller: V1BaseController@baseData
Auth: Public / Optional
Query Parameters (پارامترهای ورودی)
| Parameter | Type | Required | Description |
|---|---|---|---|
| subject | String | Yes* | نوع داده درخواستی. مقادیر مجاز:
|
| 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
If type='train' → Filter IDs from `train_stations`
Search/State Filter
train_*
Query `train_companies`, `types`, or `stations`
Query `train_companies`, `types`, or `stations`
room_*
Decode JSON from `hotel_titles` table
Decode JSON from `hotel_titles` table
airports
Join Countries & States
Join Countries & States
↓
Is `action` == 'airports'?
↓ Yes
Custom Format
{"status": true, "data": ...}
{"status": true, "data": ...}
↓ No
Standard Format
{"items": [...], "meta": ...}
{"items": [...], "meta": ...}