108 lines
2.7 KiB
Markdown
108 lines
2.7 KiB
Markdown
# تسک ۱۰: مدیریت پرسنل (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
|
|
```json
|
|
{
|
|
"full_name": "علی رضایی",
|
|
"phone": "09121234567",
|
|
"job_title": "پرستار",
|
|
"address": "تهران، خیابان ولیعصر",
|
|
"national_code": "0012345678"
|
|
}
|
|
```
|
|
|
|
### PATCH /api/v1/staff/{uuid}
|
|
```json
|
|
{
|
|
"full_name": "علی رضایی",
|
|
"job_title": "سرپرستار",
|
|
"phone": "09129999999"
|
|
}
|
|
```
|
|
|
|
### PATCH /api/v1/staff/{uuid}/toggle
|
|
```json
|
|
{}
|
|
```
|
|
(body خالی — فقط وضعیت active را toggle میکند)
|
|
|
|
## نمونه Response
|
|
|
|
### GET /api/v1/staff
|
|
```json
|
|
{
|
|
"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 (موفق)
|
|
```json
|
|
{
|
|
"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
|
|
```json
|
|
{
|
|
"success": true,
|
|
"data": { "active": false }
|
|
}
|
|
```
|
|
|
|
## کدهای خطا
|
|
|
|
| کد HTTP | توضیح |
|
|
|---------|-------|
|
|
| 401 | JWT معتبر نیست |
|
|
| 403 | کاربر مالک این پرسنل نیست |
|
|
| 404 | uuid پرسنل پیدا نشد |
|
|
| 422 | `full_name` خالی است |
|