# Clinic Services API مدیریت بخش‌ها و سرویس‌های کلینیک/مطب. **نیاز به پنل:** Basic یا بالاتر (`ERR_SUBSCRIPTION_REQUIRED` اگر نداشت) --- ## GET /api/v1/service-sections لیست بخش‌های سرویس entity جاری. **Permission:** `IS_AUTHENTICATED_FULLY` + پنل Basic+ **Response 200:** ```json { "success": true, "data": [ { "uuid": "...", "entity_type": "clinic", "entity_id": 5, "name": "آزمایشگاه", "active": true, "created_at": 1718000000, "updated_at": 1718000000 } ] } ``` --- ## POST /api/v1/service-section ایجاد بخش جدید. **Permission:** `IS_AUTHENTICATED_FULLY` + پنل Basic+ **Request Body:** ```json { "name": "رادیولوژی" } ``` **Response 201:** ServiceSection object **Errors:** | Code | HTTP | توضیح | |------|------|-------| | ERR_SUBSCRIPTION_REQUIRED | 403 | نیاز به پنل Basic+ | | ERR_VALIDATION_001 | 422 | name خالی است | --- ## PATCH /api/v1/service-section/{uuid} ویرایش بخش. **Permission:** owner یا ROLE_ADMIN ```json { "name": "رادیولوژی دیجیتال", "active": true } ``` --- ## DELETE /api/v1/service-section/{uuid} حذف بخش (cascade — همه ServiceItem های آن حذف می‌شوند). **Permission:** owner --- ## GET /api/v1/service-items/{sectionUuid} لیست سرویس‌های یک بخش. **Response 200:** ```json { "success": true, "data": [ { "uuid": "...", "section_uuid": "...", "staff_uuid": "...", "staff_name": "علی محمدی", "name": "رادیوگرافی مستقیم", "price_rials": 500000, "active": true, "created_at": 1718000000, "updated_at": 1718000000 } ] } ``` --- ## POST /api/v1/service-item ایجاد سرویس جدید. **Permission:** `IS_AUTHENTICATED_FULLY` + پنل Basic+ **Request Body:** ```json { "section_uuid": "...", "name": "رادیوگرافی مستقیم", "price_rials": 500000, "staff_uuid": "..." } ``` | فیلد | نوع | الزامی | |------|-----|--------| | section_uuid | UUID | ✅ | | name | string | ✅ | | price_rials | integer | ❌ (پیش‌فرض 0) | | staff_uuid | UUID | ❌ | **Response 201:** ServiceItem object --- ## PATCH /api/v1/service-item/{uuid} ویرایش سرویس. ```json { "name": "رادیوگرافی دیجیتال", "price_rials": 600000, "staff_uuid": null, "active": false } ``` --- ## DELETE /api/v1/service-item/{uuid} حذف سرویس. اگر سرویس در پرونده بیماری استفاده شده باشد، خطا برمی‌گرداند: ```json { "success": false, "errors": [{ "code": "ERR_SERVICE_ITEM_IN_USE", "message": "این سرویس در پرونده بیمار ثبت شده است" }] } ``` **Errors:** | Code | HTTP | توضیح | |------|------|-------| | ERR_SUBSCRIPTION_REQUIRED | 403 | نیاز به پنل Basic+ | | ERR_SERVICE_NOT_FOUND | 404 | سرویس یافت نشد | | ERR_SERVICE_ITEM_IN_USE | 409 | سرویس در پرونده بیمار استفاده شده |