Skip to main content
#P1551

GET /personnel/shift

Route Info

Method Endpoint Controller Middleware Purpose
GET /personnel/shift OfficialController@shiftWorkIndex authWithJwt نمایش لیست و جزئیات شیفت‌های فعال به همراه پرسنل مربوطه

منطق عملکرد تابع

تابع shiftWorkIndex برای واکشی نمای کلی از شیفت‌های در حال اجرا طراحی شده است. داده‌های جدول شیفت (مثلاً shift_works یا مشابه) را دریافت کرده، سپس نام پرسنل منتسب، زمان‌بندی شروع و پایان، نوع شیفت، و وضعیت فعال یا غیرفعال را بازمی‌گرداند.

  1. اعتبارسنجی توکن JWT و تشخیص نقش کاربر.
  2. واخوانی داده‌ها از جدول شیفت‌ها با روابط مربوط به پرسنل (LEFT JOIN).
  3. در صورت ارسال شناسهٔ خاص، فقط شیفت موردنظر بازگردانده می‌شود.
  4. بازگشت پاسخ JSON شامل لیست شیفت‌ها یا ویژگی‌های یک شیفت خاص.

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

نام محل نوع الزامی توضیح
id Query String integer خیر در صورت وجود، فقط شیفت موردنظر بازگردانده می‌شود
status Query String integer خیر فیلتر بر اساس وضعیت فعال (۱) یا غیرفعال (۰)

ساختار خروجی

{
  "status": true,
  "time": 1732369405,
  "data": [
    {
      "id": 12,
      "title": "شیفت صبح کارکنان بخش رزرو",
      "start_time": "07:00",
      "end_time": "15:00",
      "personnel": [
        {"id": 88, "name": "رضا قنبری"},
        {"id": 95, "name": "الهام رضایی"}
      ],
      "status": 1,
      "created_at": "1404/08/01 09:12:13"
    },
    {
      "id": 13,
      "title": "شیفت عصر سیستم فروش",
      "start_time": "15:00",
      "end_time": "23:00",
      "personnel": [],
      "status": 0
    }
  ]
}

نکات امنیتی

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

عملکرد

  • زمان واکشی در دیتاست متوسط کمتر از 40ms.
  • قابلیت کش‌کردن خروجی تا ۱۰ دقیقه برای کاهش بار پایگاه‌داده.

Dependencies

  • Illuminate\Support\Facades\DB
  • Carbon\Carbon

کدهای خطا

کد شرح منبع
400 پارامتر جستجوی نامعتبر Validation
404 شیفت مورد نظر یافت نشد DB Lookup
500 خطای داخلی سرور Exception Handler

پیشنهادهای امنیتی

  • کنترل سطح دسترسی بر اساس نقش کاربر در JWT.
  • غیرفعال کردن endpoint در زمان تعمیرات پایگاه‌داده یا انتقال داده‌ها.

پیشنهادهای توسعه‌ای

  • افزودن فیلتر تاریخ (از – تا) برای دیدن شیفت‌های گذشته.
  • امکان جستجوی پرسنل در شیفت‌ها.

ممیزی و ثبت وقایع

  • ثبت کاربر درخواست‌کننده و تاریخ بازدید در سیستم ممیزی برای تحلیل ترافیک مدیریتی.

جمع‌بندی

shiftWorkIndex برای نمایش وضعیت فعلی شیفت‌ها در سیستم طراحی شده و پایهٔ داشبورد مدیریتی بخش پرسنل محسوب می‌شود.