انتقل إلى المحتوى

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) موجود أيضًا. تحقق أيهما يستخدم مسار معيّن.

ذات صلة