2.7 KiB
2.7 KiB
تسک ۱۰: مدیریت پرسنل (Staff)
توضیح
پیادهسازی سیستم مدیریت پرسنل کلینیک/مطب. پرسنل حساب کاربری ندارند و نیازی به لاگین ندارند. این تسک پیشنیاز مستقیم تسک ۱۳ (سرویسها) و تسک ۱۵ (پرونده بیمار) است.
Endpoint ها
| متد | مسیر | توضیح | نیاز به Auth |
|---|---|---|---|
| GET | /api/v1/staff |
لیست پرسنل context جاری | بله (Doctor/Clinic) |
| POST | /api/v1/staff |
ایجاد پرسنل جدید | بله |
| PATCH | /api/v1/staff/{uuid} |
ویرایش اطلاعات | بله (مالک) |
| PATCH | /api/v1/staff/{uuid}/toggle |
فعال/غیرفعال (soft delete) | بله (مالک) |
مهم: حذف سخت (DELETE) ممنوع است — تاریخچه سرویسها و سشنهای بیمار به پرسنل ارجاع دارند.
پیشنیازها
- تسک ۰۲ (Auth — JWT + switch-context)
- تسک ۰۵ (Doctor entity)
- تسک ۰۶ (Clinic entity)
زمان تخمینی
۶ تا ۸ ساعت
نمونه Request
POST /api/v1/staff
{
"full_name": "علی رضایی",
"phone": "09121234567",
"job_title": "پرستار",
"address": "تهران، خیابان ولیعصر",
"national_code": "0012345678"
}
PATCH /api/v1/staff/{uuid}
{
"full_name": "علی رضایی",
"job_title": "سرپرستار",
"phone": "09129999999"
}
PATCH /api/v1/staff/{uuid}/toggle
{}
(body خالی — فقط وضعیت active را toggle میکند)
نمونه Response
GET /api/v1/staff
{
"success": true,
"data": [
{
"uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"full_name": "علی رضایی",
"phone": "09121234567",
"job_title": "پرستار",
"address": "تهران، خیابان ولیعصر",
"national_code": "0012345678",
"active": true,
"created_at": 1718000000
}
]
}
POST /api/v1/staff (موفق)
{
"success": true,
"data": {
"uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"full_name": "علی رضایی",
"phone": "09121234567",
"job_title": "پرستار",
"address": null,
"national_code": "0012345678",
"active": true,
"created_at": 1718000000
}
}
PATCH /api/v1/staff/{uuid}/toggle
{
"success": true,
"data": { "active": false }
}
کدهای خطا
| کد HTTP | توضیح |
|---|---|
| 401 | JWT معتبر نیست |
| 403 | کاربر مالک این پرسنل نیست |
| 404 | uuid پرسنل پیدا نشد |
| 422 | full_name خالی است |