Implement SMS panel user flow and patient records system; add wallet charging, automatic reminders, and patient session management with detailed database schema and user flows.
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
# تسک ۱۰: مدیریت پرسنل (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` خالی است |
|
||||
Reference in New Issue
Block a user