# تسک ۱۰: مدیریت پرسنل (Staff)

## توضیح
پیاده‌سازی سیستم مدیریت پرسنل کلینیک/مطب. پرسنل حساب کاربری ندارند و نیازی به لاگین ندارند.
این تسک **پیش‌نیاز مستقیم** تسک ۱۳ (سرویس‌ها) و تسک ۱۵ (پرونده بیمار) است.

## Endpoint ها

| متد | مسیر | توضیح | نیاز به Auth |
|-----|------|-------|-------------|
| GET | `/api/v1/staff` | لیست پرسنل context جاری | بله (Doctor/Clinic) |
| POST | `/api/v1/staff` | ایجاد پرسنل جدید | بله |
| PATCH | `/api/v1/staff/{uuid}` | ویرایش اطلاعات | بله (مالک) |
| PATCH | `/api/v1/staff/{uuid}/toggle` | فعال/غیرفعال (soft delete) | بله (مالک) |

**مهم:** حذف سخت (`DELETE`) ممنوع است — تاریخچه سرویس‌ها و سشن‌های بیمار به پرسنل ارجاع دارند.

## پیش‌نیازها
- تسک ۰۲ (Auth — JWT + switch-context)
- تسک ۰۵ (Doctor entity)
- تسک ۰۶ (Clinic entity)

## زمان تخمینی
۶ تا ۸ ساعت

## نمونه Request

### POST /api/v1/staff
```json
{
  "full_name": "علی رضایی",
  "phone": "09121234567",
  "job_title": "پرستار",
  "address": "تهران، خیابان ولیعصر",
  "national_code": "0012345678"
}
```

### PATCH /api/v1/staff/{uuid}
```json
{
  "full_name": "علی رضایی",
  "job_title": "سرپرستار",
  "phone": "09129999999"
}
```

### PATCH /api/v1/staff/{uuid}/toggle
```json
{}
```
(body خالی — فقط وضعیت active را toggle می‌کند)

## نمونه Response

### GET /api/v1/staff
```json
{
  "success": true,
  "data": [
    {
      "uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "full_name": "علی رضایی",
      "phone": "09121234567",
      "job_title": "پرستار",
      "address": "تهران، خیابان ولیعصر",
      "national_code": "0012345678",
      "active": true,
      "created_at": 1718000000
    }
  ]
}
```

### POST /api/v1/staff (موفق)
```json
{
  "success": true,
  "data": {
    "uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
    "full_name": "علی رضایی",
    "phone": "09121234567",
    "job_title": "پرستار",
    "address": null,
    "national_code": "0012345678",
    "active": true,
    "created_at": 1718000000
  }
}
```

### PATCH /api/v1/staff/{uuid}/toggle
```json
{
  "success": true,
  "data": { "active": false }
}
```

## کدهای خطا

| کد HTTP | توضیح |
|---------|-------|
| 401 | JWT معتبر نیست |
| 403 | کاربر مالک این پرسنل نیست |
| 404 | uuid پرسنل پیدا نشد |
| 422 | `full_name` خالی است |
