Files
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

3.7 KiB

جریان کاربری — تسک ۱۲: تکمیل منشی

جریان افزودن منشی جدید با بررسی سقف پنل

دکتر روی «افزودن منشی» کلیک می‌کند → 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 داری)