- Added seed_realistic_data.php to clean existing data and populate the database with realistic entries for doctors, clinics, and secretaries. - Created a structured approach to generate 100 doctors per city with diverse specialties and services. - Implemented database cleanup routines to ensure a fresh start for data seeding. - Enhanced the DoctorSecretaryRepository with improved comments for clarity.
71 lines
3.7 KiB
Markdown
71 lines
3.7 KiB
Markdown
# جریان کاربری — تسک ۱۲: تکمیل منشی
|
|
|
|
## جریان افزودن منشی جدید با بررسی سقف پنل
|
|
|
|
```
|
|
دکتر روی «افزودن منشی» کلیک میکند → Modal باز میشود
|
|
│
|
|
▼
|
|
POST /api/v1/secretary { phone, ... }
|
|
│
|
|
├─► 403 ERR_SECRETARY_LIMIT_REACHED:
|
|
│ ┌─────────────────────────────────────────┐
|
|
│ │ ⚠️ سقف منشی پنل شما تکمیل شده است │
|
|
│ │ پنل Free: حداکثر ۱ منشی │
|
|
│ │ │
|
|
│ │ [ارتقاء به Basic] [بستن] │
|
|
│ └─────────────────────────────────────────┘
|
|
│
|
|
└─► 201: منشی ایجاد شد → لیست refresh
|
|
```
|
|
|
|
## جریان ویرایش permissions منشی
|
|
|
|
```
|
|
دکتر روی آیکن تنظیمات کنار منشی کلیک میکند
|
|
│
|
|
▼
|
|
GET /api/v1/secretary/{uuid}
|
|
→ بارگذاری permissions فعلی در Modal
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ دسترسیهای علی رضایی │
|
|
├──────────────────┬──────────┬────────┬────────┬─────────┤
|
|
│ بخش │ مشاهده │ ایجاد │ ویرایش │ لغو/حذف│
|
|
├──────────────────┼──────────┼────────┼────────┼─────────┤
|
|
│ نوبتها │ ✅ │ ✅ │ ✅ │ ☐ │
|
|
│ آدرسها │ ✅ │ ☐ │ ☐ │ ☐ │
|
|
│ اطلاعات کلینیک │ ✅ │ - │ ☐ │ - │
|
|
│ بیمهها │ ✅ │ ☐ │ ☐ │ ☐ │
|
|
└──────────────────┴──────────┴────────┴────────┴─────────┘
|
|
│ │
|
|
│ [لغو] [ذخیره دسترسیها] │
|
|
└─────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
PATCH /api/v1/secretary/{uuid}
|
|
{ permissions: { version: 1, resources: { ... } } }
|
|
│
|
|
▼
|
|
200: «دسترسیهای منشی بروزرسانی شد» → Modal بسته میشود
|
|
```
|
|
|
|
## ترتیب سطوح سقف منشی
|
|
|
|
```
|
|
اشتراک → سقف → اگر افزودن فراتر رود
|
|
─────────────────────────────────────────
|
|
Free → 1 → 403
|
|
Basic → 2 → 403
|
|
Professional → 5 → 403
|
|
```
|
|
|
|
## نکته: منشی غیرفعال از سقف کم نمیشود
|
|
|
|
```
|
|
countActive() فقط منشی ها active=true را میشمارد
|
|
یعنی: اگر 2 منشی داری و یکی را غیرفعال کنی → میتوانی دوباره 1 منشی جدید اضافه کنی
|
|
(مادامی که در پنل Basic هستی و سقف 2 داری)
|
|
```
|