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

API — الطلب

الغرض

خطط الطلب (مصفوفة التغطية المطلوبة حسب التاريخ/المحطة/الوردية) وقوالب الطلب (أشكال قابلة لإعادة الاستخدام تطبّقها لإنشاء خطة).

المصادقة والأدوار

  • خطط الطلب — القاعدة /api/demand/plans · قراءة demand.read، كتابة demand.write (SYS_ADMIN + HR_ADMIN + PLANNER).
  • قوالب الطلب — القاعدة /api/demand/templates · قراءة demand.template_read، تطبيق demand.write.

انظر مصفوفة RBAC.

نقاط النهاية

Demand plans/api/demand/plans

Method Path Purpose Gate
GET /api/demand/plans سرد الخطط (قابلة للترشيح حسب التاريخ/المحطة/الحالة) demand.read
POST /api/demand/plans إنشاء خطة demand.write
GET /api/demand/plans/{id} تفصيل الخطة (المصفوفة) demand.read
PATCH /api/demand/plans/{id} تحرير الخلايا / الحالة demand.write
DELETE /api/demand/plans/{id} حذف خطة demand.write

Demand templates/api/demand/templates

Method Path Purpose Gate
GET /api/demand/templates · /{id} سرد / قراءة القوالب demand.template_read
POST /api/demand/templates/{id}/apply تطبيق قالب (تشغيل تجريبي + تثبيت) demand.write

الأشكال والأخطاء

للخطة آلة حالات وسطح لتحرير الخلايا؛ ويدعم تطبيق القالب تشغيلًا تجريبيًا ثم تثبيتًا (الورقة 08). تحرير خطة مقفلة يُرجع 409. ProblemDetails القياسي.

المزالق

  • DemandPlanStatus.Locked قيمة تعداد معرَّفة لكن لا يمكن الوصول إليها (F1). يعلن التعداد Locked، لكن لا مسار شفرة ينقل خطة إليها — نشر جدول لا يقفل خطة طلبه. عامل Locked كميتة للخطط؛ لا تكتب منطقًا يفترض أن خطة يمكن أن تبلغها.
  • 409 تحرير المقفل لا يزال موجودًا في عقد الـ API لخلايا الخطة، لكن حالة Locked على مستوى الخطة نفسها لا يمكن الوصول إليها — هذان شيئان مختلفان؛ والحارس على مستوى الخلية حقيقي.
  • أسباب الطلب المُشار إليها من الخطط تُدار عبر admin CRUD (/api/admin/demand-reasons) وتُقرأ عبر عمليات البحث.

ذات صلة