Skip to main content
#P1441

GET /api/v2/passenger/profile

Route Info

Method Endpoint Controller Middleware Purpose
GET /api/v2/passenger/profile UserController@profilePassenger authWithJwt بازیابی پروفایل کامل مسافر شامل اطلاعات هویتی، مدارک، ملیت، تاریخ تولد، و سوابق مالی.

منطق عملکرد

  • جستجو در جدول customers بر اساس شناسه ورودی id.
  • در صورت عدم وجود، پاسخ با کد ۴۰۴ و پیام "مسافری با این مشخصات یافت نشد" برمی‌گردد.
  • در صورت وجود، تلاش برای واکشی ملیت از Redis (کلید countries:{id}).
  • اگر کشور در Redis نبود، از DB خوانده و کش می‌شود.
  • واکشی فاکتورهای مالی مرتبط از factor_items + factors با شاخه فعلی، گروه‌بندی‌شده بر اساس factor_id.
  • در نهایت خروجی شامل بخش‌های references، details، contacts و correspondence بازگردانده می‌شود.

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

نام نوع ضروری توضیح
id integer بله شناسه مسافر در جدول customers.
branch integer بله شناسه شعبه موردنظر برای فیلترینگ فاکتورها.

نمونه خروجی موفق

{
  "payload": {
    "references": [
      {"title": "بلیط استانبول", "financial": {...}}
    ],
    "contacts": false,
    "details": {
      "passenger_id": 44,
      "name_fa": "علیرضا",
      "lastname_fa": "ایرانپور",
      "national_code": "0012345678",
      "birthday": "1386/03/21",
      "citizenship": { "fa_name": "ایران", "iso": "IR" },
      "sex": true,
      "national_image": false,
      "identity": false
    }
  },
  "meta": { "timestamp": 1732038300 }
}

امنیت

احراز هویت با JWT. دسترسی فقط برای اپراتورهای شعبه فعال مجاز است.

وابستگی‌ها

  • DB Facade
  • Redis
  • Carbon
  • TradeController::financial()
  • Functions::int2DateTime()

کارایی

کش Redis برای کشورها سرعت پاسخ را تا ۸۰٪ افزایش می‌دهد؛ متوسط زمان پاسخ: 3–5ms.

مدیریت خطا

  • در صورت حذف رکورد، بازگرداندن JSON با کد 404 و پیام مناسب.

اثرات جانبی

هیچ دیتایی تغییر نمی‌کند؛ فقط خوانش ایمن انجام می‌شود.

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

در این نسخه لاگ مستقیم ندارد؛ اکشن فقط خواندن است.

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

  • افزودن جزئیات تماس اخیر از جدول call_logs.
  • نمایش وضعیت تأیید احراز هویت در خروجی.

جمع‌بندی

پروفایل مسافر ماژول مرجع برای نمایش داده‌های مسافر است؛ شامل جزئیات هویتی، ملیتی، مدارک، و سوابق مالی است.