Files
clinicpro/docs/phase2_taskes/task-10-staff/task.md
T

2.7 KiB

تسک ۱۰: مدیریت پرسنل (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

{
  "full_name": "علی رضایی",
  "phone": "09121234567",
  "job_title": "پرستار",
  "address": "تهران، خیابان ولیعصر",
  "national_code": "0012345678"
}

PATCH /api/v1/staff/{uuid}

{
  "full_name": "علی رضایی",
  "job_title": "سرپرستار",
  "phone": "09129999999"
}

PATCH /api/v1/staff/{uuid}/toggle

{}

(body خالی — فقط وضعیت active را toggle می‌کند)

نمونه Response

GET /api/v1/staff

{
  "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 (موفق)

{
  "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

{
  "success": true,
  "data": { "active": false }
}

کدهای خطا

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