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

API — عمليات البحث والبيانات المرجعية

الغرض

أسطح الـ admin-CRUD لعمليات بحث البيانات المرجعية، إضافةً إلى كتالوج البحث للقراءة فقط الذي تستخدمه الواجهة لتعبئة القوائم المنسدلة. تتبع مجموعات الـ CRUD الثماني جميعها قالب CRUD للبحث؛ وLookupsController هو للقراءة فقط.

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

كل مجموعة CRUD تقيّد القراءات على <entity>.view والكتابات على <entity>.config. وبحسب مصفوفة RBAC، فإن .config نمطيًا SYS_ADMIN + HR_ADMIN (± PLANNER للبعض)؛ و.view تمتد إلى الأدوار التشغيلية.

نقاط النهاية — admin CRUD (كلها تحت /api/admin/*)

كل مجموعة تعرض الأفعال الخمسة نفسها: GET (سرد)، POST (إنشاء)، GET /{id}، PUT /{id}، DELETE /{id}.

Group Base route Gate (view / config)
Grades /api/admin/grades grade.view / grade.config
Skills (admin) /api/admin/skills skill.view / skill.config
Terminals /api/admin/terminals terminal.view / terminal.config
Node types /api/admin/node-types node_type.view / node_type.config
Holidays /api/admin/holidays holiday.view / holiday.config
Demand reasons /api/admin/demand-reasons demand_reason.view / demand_reason.config
Shift templates /api/admin/shift-templates shift_template.view / shift_template.config
Attendance statuses /api/admin/attendance-statuses attendance_status.view / attendance_status.config

نقاط النهاية — عمليات البحث للقراءة فقط

Lookups — القاعدة /api/lookups · [Authorize] (أي مستخدم مُصادَق عليه) · كلها GET

Path Returns
/api/lookups/departments · /nodes · /terminals خيارات الهيكل التنظيمي
/api/lookups/employee-statuses · /holiday-types خيارات الحالة / النوع
/api/lookups/skill-categories · /skill-levels خيارات تصنيف المهارات
/api/lookups/demand-reasons خيارات سبب الطلب

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

تحمل أجسام CRUD code + Name_1_English/Name_2_Arabic ثنائي اللغة (+ وصف D9 اختياري — انظر حقول الوصف). الحذف محمي: 409 <ENTITY>_REFERENCED إن كان مُشارًا إليه بـ FK، و409 <ENTITY>_PROTECTED إن كان صفًا نظاميًا (انظر الاستثناءات). code غير قابل للتغيير عند التحديث.

المزالق

  • LookupsController للقراءة فقط — يخدم بيانات القوائم المنسدلة؛ ولا يُجري تغييرًا. الأسطح القابلة للكتابة هي مجموعات /api/admin/* أعلاه.
  • Skills (admin) يتعايش مع مجموعة الإنتاج Skills (/api/skills، على صفحة الموظفين/المهارات/الشهادات) — نمط التعايش. admin CRUD مقابل قراءة وقت التشغيل.
  • الصفوف النظامية لا يمكن تحريرها أو حذفها — لا يقبل التغيير إلا الذيل الطويل غير النظامي.
  • اشتراط الاسم العربي حسب الكيان (DemandReason يتركه اختياريًا؛ والبقية تشترطه).

ذات صلة