API — الإجازات
الغرض
طلبات الإجازة وسلسلة اعتمادها ذات الخطوتين.
المصادقة والأدوار
القاعدة /api/leave-requests · الصنف [Authorize]. القيود: leave_request.submit (تقديم)، leave_request.view_own / leave_request.view_all (قراءة)، leave_request.approve (اعتماد/رفض). قيد الاعتماد يحمله SYS_ADMIN + HR_ADMIN + MANAGER + SUPERVISOR (انظر مصفوفة RBAC).
نقاط النهاية
| Method | Path | Purpose | Gate |
|---|---|---|---|
| GET | /api/leave-requests |
سرد (الكل، للمُعتمِدين) | leave_request.view_all |
| POST | /api/leave-requests |
تقديم طلب | leave_request.submit |
| GET | /api/leave-requests/{id} |
تفصيل الطلب | leave_request.view_own |
| PATCH | /api/leave-requests/{id}/approve |
اعتماد خطوة | leave_request.approve |
| PATCH | /api/leave-requests/{id}/reject |
رفض | leave_request.approve |
| PATCH | /api/leave-requests/{id}/cancel |
إلغاء الطلب الخاص | leave_request.view_own |
الأشكال والأخطاء
يتدفق الطلب عبر سلسلة اعتماد من خطوتين Manager ← HR_Admin (leave_requests + leave_approval_steps، الورقة 11). قاعدة التخصيص LEAVE_CONFLICT تقرأ بيانات إجازة حقيقية. ProblemDetails القياسي.
المزالق
- لا تصنيف لأنواع الإجازات. لا يوجد تصنيف سنوية/مرضية/إجازة — للطلب لا
LeaveType(الورقة 11). لا تتوقع حقل نوع. - الإلغاء يضبط الحالة، لا الحذف الناعم. الإلغاء يضبط
Status = Cancelled؛ ولا يضبطIsDeleted(حالات حافة الورقة 01). - قيدا اعتماد متعايشان — سلسلة الخطوات تستخدم
leave_request.approve؛ وقيد قديمleave.approve(SYS_ADMIN + MANAGER) موجود أيضًا. تحقق أيهما يستخدم مسار معيّن.
ذات صلة
- تقديم وتتبّع الإجازة (مهمة) · اعتماد الإجازة (مهمة)
- Swagger:
/swagger· ورقة الحقائق 11 (إدارة الإجازات).