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

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

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