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,86 @@
|
||||
# جریان کاربری — تسک ۱۰: مدیریت پرسنل (Staff)
|
||||
|
||||
## جریان ایجاد پرسنل جدید
|
||||
|
||||
```
|
||||
مدیر کلینیک/دکتر وارد پنل میشود
|
||||
│
|
||||
▼
|
||||
GET /api/v1/staff
|
||||
→ لیست پرسنل فعلی context جاری نمایش داده میشود
|
||||
│
|
||||
▼
|
||||
کاربر روی «افزودن پرسنل» کلیک میکند → Modal باز میشود
|
||||
│
|
||||
▼
|
||||
POST /api/v1/staff
|
||||
{ full_name, phone?, job_title?, address?, national_code? }
|
||||
│
|
||||
├─► 422: full_name خالی است → نمایش خطا در فرم
|
||||
│
|
||||
└─► 201: پرسنل ایجاد شد → لیست refresh میشود
|
||||
```
|
||||
|
||||
## جریان ویرایش پرسنل
|
||||
|
||||
```
|
||||
کاربر روی آیکن ویرایش در جدول کلیک میکند
|
||||
│
|
||||
▼
|
||||
Modal با اطلاعات فعلی پر میشود
|
||||
│
|
||||
▼
|
||||
PATCH /api/v1/staff/{uuid}
|
||||
{ full_name, phone, job_title, ... }
|
||||
│
|
||||
├─► 403: این پرسنل متعلق به شما نیست
|
||||
└─► 200: ویرایش موفق → Modal بسته میشود
|
||||
```
|
||||
|
||||
## جریان غیرفعالسازی (Soft Delete)
|
||||
|
||||
```
|
||||
کاربر روی toggle در جدول کلیک میکند
|
||||
│
|
||||
▼
|
||||
PATCH /api/v1/staff/{uuid}/toggle
|
||||
│
|
||||
▼
|
||||
active: true → false یا false → true
|
||||
│
|
||||
▼
|
||||
در لیست: badge وضعیت تغییر میکند (فعال/غیرفعال)
|
||||
```
|
||||
|
||||
## چرا حذف سخت ممنوع است
|
||||
|
||||
```
|
||||
clinic_staff (active=false)
|
||||
│
|
||||
├── service_items.staff_id → هنوز به پرسنل ارجاع دارد
|
||||
│ (تاریخچه سرویسها حفظ میشود)
|
||||
│
|
||||
└── session_services.staff_id → سشنهای قبلی بیمار
|
||||
نام انجامدهنده را نشان میدهند
|
||||
```
|
||||
|
||||
اگر پرسنل حذف سخت میشد:
|
||||
- `service_items.staff_id` → NULL (انجامدهنده سرویس گم میشد)
|
||||
- `session_services.staff_id` → NULL (تاریخچه ویزیت ناقص میشد)
|
||||
|
||||
## نمایش در Frontend (StaffPage.tsx)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ پرسنل کلینیک [+ افزودن] │
|
||||
├──────────┬──────────┬──────────┬────────────────┤
|
||||
│ نام │ سمت │ تلفن │ وضعیت عملیات│
|
||||
├──────────┼──────────┼──────────┼────────────────┤
|
||||
│ علی رضایی│ پرستار │ 0912... │ ✅فعال ✏️ 🔘 │
|
||||
│ مریم نوری│ منشی │ 0913... │ ❌غیرفعال✏️ 🔘│
|
||||
└──────────┴──────────┴──────────┴────────────────┘
|
||||
```
|
||||
|
||||
- ستون آخر: آیکن ویرایش (Modal) + toggle وضعیت
|
||||
- غیرفعالها با رنگ کمتر نمایش داده میشوند اما از لیست حذف نمیشوند
|
||||
- فیلتر: «فقط فعالها» / «همه» — query param `?active=1`
|
||||
Reference in New Issue
Block a user