2.9 KiB
2.9 KiB
تسک ۱۳: سرویسهای کلینیک (Clinic Services)
توضیح
پیادهسازی مدیریت سرویسهای کلینیک در دو سطح: بخش (ServiceSection) و زیربخش (ServiceItem).
دسترسی فقط در پنل Basic+ — gate: hasFeature('services').
در تسک ۱۵ (پرونده بیمار)، ServiceItems در سشنهای بیمار استفاده میشوند.
Endpoint ها
| متد | مسیر | Gate | توضیح |
|---|---|---|---|
| GET | /api/v1/service-sections |
Basic+ | لیست بخشها |
| POST | /api/v1/service-section |
Basic+ | ایجاد بخش |
| PATCH | /api/v1/service-section/{uuid} |
Basic+ | ویرایش بخش |
| DELETE | /api/v1/service-section/{uuid} |
Basic+ | حذف بخش |
| GET | /api/v1/service-items/{sectionUuid} |
Basic+ | لیست زیربخشهای یک بخش |
| POST | /api/v1/service-item |
Basic+ | ایجاد زیربخش |
| PATCH | /api/v1/service-item/{uuid} |
Basic+ | ویرایش زیربخش |
| DELETE | /api/v1/service-item/{uuid} |
Basic+ | حذف زیربخش |
نکته DELETE: حذف سخت مجاز است — اما اگر ServiceItem در session_services استفاده شده باشد، باید با خطا متوقف شود (FK ON DELETE RESTRICT).
پیشنیازها
- تسک ۱۰ (ClinicStaff — برای staff_id در ServiceItem)
- تسک ۱۱ (Subscription — hasFeature gate)
زمان تخمینی
۸ تا ۱۰ ساعت
نمونه Request
POST /api/v1/service-section
{
"name": "تزریقات"
}
POST /api/v1/service-item
{
"section_uuid": "uuid-of-section",
"name": "سرم ۵۰۰cc",
"price_rials": 85000,
"staff_uuid": "uuid-of-staff-optional"
}
PATCH /api/v1/service-item/{uuid}
{
"price_rials": 95000,
"staff_uuid": null
}
نمونه Response
GET /api/v1/service-sections
{
"success": true,
"data": [
{
"uuid": "...",
"name": "تزریقات",
"active": true,
"items_count": 3
},
{
"uuid": "...",
"name": "فیزیوتراپی",
"active": true,
"items_count": 7
}
]
}
GET /api/v1/service-items/{sectionUuid}
{
"success": true,
"data": [
{
"uuid": "...",
"name": "سرم ۵۰۰cc",
"price_rials": 85000,
"staff": { "uuid": "...", "full_name": "علی رضایی" },
"active": true
}
]
}
کدهای خطا
| کد | HTTP | توضیح |
|---|---|---|
ERR_SUBSCRIPTION_REQUIRED |
403 | پنل Basic یا بالاتر لازم است |
ERR_SERVICE_SECTION_HAS_ITEMS |
409 | بخش دارای زیربخش است — ابتدا آنها را حذف کنید |
ERR_SERVICE_ITEM_IN_USE |
409 | سرویس در پرونده بیمار استفاده شده — قابل حذف نیست |