API — الاعتمادات والنشر
الغرض
نشر جدول مقفل إلى لقطة منشورة غير قابلة للتغيير، وسطح القراءة للجداول المنشورة، وطابور اعتماد الجداول.
المصادقة والأدوار
| Area | Base | Gate |
|---|---|---|
| Roster publish | /api/admin/roster |
roster.publish (SYS_ADMIN + PLANNER + MANAGER) |
| Roster approvals | /api/admin/roster-approvals |
roster.approve (SYS_ADMIN + MANAGER) |
| Published rosters | /api/admin/published-rosters |
roster.view |
نقاط النهاية
Publish — /api/admin/roster
| Method | Path | Purpose |
|---|---|---|
| POST | /api/admin/roster/publish |
نشر جدول مقفل |
| POST | /api/admin/roster/republish |
إعادة النشر |
Approvals — /api/admin/roster-approvals
| Method | Path | Purpose |
|---|---|---|
| GET | /api/admin/roster-approvals/pending · /pending/count |
طابور الاعتماد + عدّاد الجرس |
| POST | /api/admin/roster-approvals/{id}/approve · /reject |
اعتماد / رفض |
Published rosters — /api/admin/published-rosters
| Method | Path | Purpose |
|---|---|---|
| GET | /api/admin/published-rosters · /{id} |
سرد / قراءة اللقطات المنشورة |
الأشكال والأخطاء
يُجسّد النشر لقطة منشورة غير قابلة للتغيير (published_rosters + published_roster_lines)؛ ويعرض الطابور عددًا معلّقًا لجرس الإشعارات (الورقة 10). ProblemDetails القياسي.
المزالق
- نقطة
Approvedميتة — يذهب النشر مباشرة إلى Published. يعرّف تعداد حالة الجدول المنشور قيمةApproved = 3، لكن لا مسار شفرة يمر عبرها: ينتقل النشر مباشرةً إلىPublished. عاملApprovedكحالة معرَّفة لكن غير مستخدمة؛ لا تكتب منطقًا يتوقع أن يبقى جدول فيها. - نشر/اعتماد بخطوة واحدة فقط. سلسلة اعتماد متعددة الخطوات، وفصل الناشر≠المُعتمِد، كلاهما مخطط (PLANNED) (الورقة 10) — التدفق الحالي بخطوة واحدة.
- الجرس استطلاع من الواجهة الأمامية لنقاط نهاية العدّ المعلّق (كل 30 ثانية)؛ ولا يوجد نظام دفع/إشعار في الخلفية (الورقة 18).
- اللقطات المنشورة غير قابلة للتغيير — تمر التصحيحات عبر إعادة النشر، لا عبر تحريرات على اللقطة.
ذات صلة
- مراجعة وقفل جولة (مهمة) · نشر جدول (مهمة)
- الجداول وجولات التخصيص
- Swagger:
/swagger· أوراق الحقائق 10 (الاعتمادات والنشر)، 18 (الإشعارات).