Files
clinicpro/docs/phase2_taskes/task-12-secretary-completion/user_flow.md
T
hamed df7a784701 feat: implement realistic data seeding for doctors, clinics, and secretaries
- 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.
2026-06-15 14:18:25 +03:30

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 داری)
```