#P1551
GET /personnel/shift
Route Info
| Method |
Endpoint |
Controller |
Middleware |
Purpose |
| GET |
/personnel/shift |
OfficialController@shiftWorkIndex |
authWithJwt |
نمایش لیست و جزئیات شیفتهای فعال به همراه پرسنل مربوطه |
منطق عملکرد تابع
تابع shiftWorkIndex برای واکشی نمای کلی از شیفتهای در حال اجرا طراحی شده است. دادههای جدول شیفت (مثلاً shift_works یا مشابه) را دریافت کرده، سپس نام پرسنل منتسب، زمانبندی شروع و پایان، نوع شیفت، و وضعیت فعال یا غیرفعال را بازمیگرداند.
- اعتبارسنجی توکن JWT و تشخیص نقش کاربر.
- واخوانی دادهها از جدول شیفتها با روابط مربوط به پرسنل (LEFT JOIN).
- در صورت ارسال شناسهٔ خاص، فقط شیفت موردنظر بازگردانده میشود.
- بازگشت پاسخ 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 برای نمایش وضعیت فعلی شیفتها در سیستم طراحی شده و پایهٔ داشبورد مدیریتی بخش پرسنل محسوب میشود.