Skip to main content
#P1782

GET /b2c/v1/user/passengers


Get User Passengers List

این اندپوینت لیست تمامی مسافران مرتبط با حساب کاربری فعلی را باز می‌گرداند.
سیستم لیست مسافران را از دو منبع استخراج می‌کند:

  1. سابقه خرید (History): افرادی که کاربر لاگین شده قبلاً در فاکتورهای خود (`factors`) برای آن‌ها بلیط (`factor_items`) تهیه کرده است (به جز خود کاربر).
  2. زیرمجموعه‌ها (Relationship): افرادی که در پروفایل کاربر به عنوان همراه یا خانواده تعریف شده‌اند (`relationship = user_id`).

 




Fetch Passengers

URL: /b2c/v1/user/passengers
Method: GET
Controller: V1UserController@passengersList
Auth: Required (Bearer Token)

Headers (الزامی)

Header Name Description
Authorization توکن احراز هویت (Bearer Token).
Domain دامنه سایت.

Response Structure

Key Type Description
status Boolean وضعیت درخواست.
time Timestamp زمان سرور.
data Array[Object] لیست کامل آبجکت‌های مسافران (از جدول customers).
↳ id Integer شناسه مسافر.
↳ first_name / last_name String نام و نام خانوادگی.
↳ national_code String کد ملی.
↳ passport_number String شماره پاسپورت (در صورت وجود).
↳ gender Boolean/Int جنسیت (معمولاً 1: مرد، 0: زن).
↳ birthday String تاریخ تولد.

Example Responses

۱. موفقیت آمیز (200 OK):

{
    "status": true,
    "time": 1702145000,
    "data": [
        {
            "id": 501,
            "first_name": "Saeed",
            "last_name": "Mohammadi",
            "first_name_fa": "سعید",
            "last_name_fa": "محمدی",
            "national_code": "0077777777",
            "gender": 1,
            "birthday": "1990-05-20",
            "passport_number": "A12345678",
            "relationship": 105,
            "created_at": "2023-01-01 12:00:00"
        },
        {
            "id": 890,
            "first_name": "Sara",
            "last_name": "Tehrani",
            "first_name_fa": "سارا",
            "last_name_fa": "تهرانی",
            "national_code": "0088888888",
            "gender": 0,
            "birthday": "1995-10-10",
            "passport_number": null,
            "relationship": null, 
            "note": "Fetched from history"
        }
    ]
}

Technical Logic

Request (GET)
Identify User
Get operator->id from JWT
Query 1: Purchase History
Find `customer_id` in `factor_items` where:
1. Invoice owner is User (`factors.customer == id`)
2. Passenger is NOT User (`customer_id != id`)
Query 2: Fetch Customers
SELECT * FROM customers WHERE:
Condition A: relationship == user_id
OR
Condition B: id IN [History IDs]
Return List