Skip to main content
#P1550

GET /personnel/shift/list

Route Info

Method Endpoint Controller Middleware Purpose
GET /personnel/shift/list OfficialController@shiftWorkList authWithJwt نمایش لیست همه شیفت‌های موجود و تعریف‌شده سیستم

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

تابع shiftWorkList داده‌های تمام شیفت‌های فعال را از پایگاه‌داده واکشی کرده و آن‌ها را در قالب ساختاریافته (با جزئیات زمان شروع، پایان، نوع و توضیحات) بازمی‌گرداند. این خروجی معمولاً برای انتخاب سریع شیفت هنگام تخصیص به پرسنل استفاده می‌شود.

  1. دریافت درخواست GET از کلاینت با توکن معتبر JWT.
  2. اجرای کوئری روی جدول shift_works یا مدل مشابه برای استخراج لیست شیفت‌ها.
  3. مرتب‌سازی خروجی بر اساس شماره یا عنوان شیفت.
  4. بازگشت پاسخ JSON شامل آرایه‌ای از شیفت‌ها.

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

نام محل نوع الزامی توضیح
search Query String string خیر عبارت فیلتر عنوان یا توضیح شیفت
status Query String integer خیر ۱ برای فعال، ۰ برای غیرفعال

ساختار خروجی

{
  "status": true,
  "time": 1732369262,
  "data": [
    {
      "id": 1,
      "title": "شیفت صبح",
      "start": "07:00",
      "end": "15:00",
      "status": 1,
      "description": "کار اداری صبح",
      "created_at": "1404/03/12 10:11:22"
    },
    {
      "id": 2,
      "title": "شیفت عصر",
      "start": "15:00",
      "end": "23:00",
      "status": 1,
      "description": "شیفت عصرگاهی"
    }
  ]
}

نکات امنیتی

  • نیاز به احراز هویت از طریق JWT دارد.
  • صرفاً داده‌های مجاز طبق نقش کاربر بازگردانده می‌شوند.

عملکرد

  • میانگین زمان پاسخ‌گویی کمتر از 25ms در کوئری لوکال.
  • در تولید زیاد داده پیشنهاد می‌شود از cache layer با TTL=3600 استفاده شود.

Dependencies

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

کدهای خطا

کد شرح منبع
401 توکن نامعتبر یا منقضی‌شده Middleware
404 هیچ شیفتی یافت نشد DB Query
500 خطای داخلی سرور Exception Handler

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

  • محدود کردن نرخ درخواست (Rate Limit = 30 req/min).
  • ثبت لاگ درخواست‌ها برای ممیزی تغییرات سیستم شیفت.

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

  • افزودن پارامترهای فیلتر زمانی (startFrom / endTo).
  • اضافه‌کردن خروجی خلاصه برای کارایی بالاتر در فهرست‌های UI.

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

  • لاگ دسترسی مدیران با شناسه کاربری، زمان و IP ثبت شود.

جمع‌بندی

shiftWorkList نقطهٔ ورودی دریافت لیست کامل شیفت‌هاست. با بازگرداندن جزئیات دقیق زمان‌ها، این مسیر پایهٔ مدیریت و تنظیم شیفت‌های پرسنل در سامانه است.