API — الموظفون والمهارات والشهادات
الغرض
الوصول للقراءة إلى ملفات الموظفين، وسطح المهارات الإنتاجي، والشهادات، ومجموعات الموظفين، وخط أنابيب الاستيراد المجمع عبر Excel الذي هو مسار الكتابة الوحيد للأشخاص والمهارات.
المصادقة والأدوار
| Area | Base | Reads / writes |
|---|---|---|
| Employees | /api/employees |
employee.view (read-only) |
| Skills (production) | /api/skills |
skill.view / skill.edit |
| Certifications | /api/employees/{id}/certifications |
certifications.read / certifications.manage |
| Employee groups | /api/employee-groups |
employee_group.read / employee_group.write |
| Imports | /api/imports |
imports.run |
نقاط النهاية
Employees — /api/employees · employee.view · GET فقط
| Method | Path | Purpose |
|---|---|---|
| GET | /api/employees |
سرد الموظفين |
| GET | /api/employees/my |
سجل الموظف الخاص بالمُستدعي |
| GET | /api/employees/{id} |
تفصيل الموظف |
Skills (production) — /api/skills
| Method | Path | Purpose | Gate |
|---|---|---|---|
| GET | /api/skills |
سرد المهارات | skill.view |
| GET | /api/skills/{id}/employees |
الموظفون الحاملون لمهارة | skill.view |
| GET / POST / DELETE | /api/skills/{id}/certification-requirements … |
إدارة متطلبات الشهادة | skill.view / skill.edit |
| PUT | /api/skills/{id}/requires-certification |
تبديل اشتراط الشهادة | skill.edit |
Certifications
| Method | Path | Purpose | Gate |
|---|---|---|---|
| GET | /api/certifications/expiring |
الشهادات المنتهية قريبًا | certifications.read |
| GET | /api/employees/me/certifications |
الشهادات الخاصة | [Authorize] |
| GET / POST | /api/employees/{id}/certifications |
سرد / إضافة شهادة | manage |
| PUT | /api/employees/{id}/certifications/{certId} (+ /status) |
تحديث شهادة / حالتها | certifications.manage |
Employee groups — /api/employee-groups · قراءة employee_group.read، كتابة employee_group.write: CRUD كامل إضافةً إلى GET/POST/DELETE …/{id}/members[/{employeeId}] للعضوية.
Imports — /api/imports · imports.run (SYS_ADMIN + HR_ADMIN + PLANNER)
| Method | Path | Purpose |
|---|---|---|
| POST | /api/imports/employees |
رفع .xlsx ← مهمة استيراد غير متزامنة |
| GET | /api/imports/template · /export-current |
تنزيل قالب فارغ / البيانات الحالية |
| GET | /api/imports/jobs · /jobs/{id} |
سرد / تفصيل المهام |
| GET | /api/imports/jobs/{id}/error-report |
تنزيل ملف أخطاء كل صف بصيغة .xlsx |
| DELETE | /api/imports/jobs/{id} |
إلغاء مهمة (SuperAdmin + imports.view_history) |
الأشكال والأخطاء
يُتحقَّق من رفع الاستيراد تزامنيًا (≤10 MB، .xlsx، المخطط) ثم يُشغَّل كـ مهمة Hangfire أطلِقها-وانسَها (انظر المهام الخلفية)؛ والملف في الذاكرة فقط، ومُجزَّأ بـ SHA-256. ProblemDetails القياسي؛ وملف مكرر خلال 24 ساعة يُرجع 201 مع warning، لا حظرًا.
المزالق
- الموظفون والمهارات عبر الاستيراد فقط / للقراءة فقط عبر الـ API. لا توجد نقطة نهاية إنشاء/تحرير موظف (Employees هي GET فقط) — يدخل الأشخاص عبر استيراد Excel أو البذرة (الورقة 03). أما CRUD كتالوج المهارات فهو السطح الإداري (
/api/admin/skills)، لا هذه المسارات الإنتاجية. /api/skills(إنتاج) يتعايش مع/api/admin/skills(admin CRUD) — نمط التعايش.- لا مسح تلقائي لانتهاء صلاحية الشهادات — "المنتهية قريبًا" تُحسب عند القراءة؛ ولا توجد مهمة مجدولة (الورقة 04؛ انظر التشخيصات للإطلاق اليدوي).
- إلغاء الاستيراد يحتاج SuperAdmin +
imports.view_history، ويلغي تعاونيًا بين الصفوف.
ذات صلة
- الموظفون والمهارات (مفهوم) · الشهادات
- المهام الخلفية · نمط التعايش
- Swagger:
/swagger· أوراق الحقائق 03 (سجل الموظفين الرئيسي)، 04 (المهارات والشهادات).