feat(admin): 运营端培训业务 P0 — 新增 /admin/courses|activities|bookings|tests
新增 courses 表(app/training/db.py SEED_COURSES),经 training_admin_bridge 桥接 app.training 的课程/活动(events)/报名(bookings)/测评(tests) 数据为统一运营视图; schemas 增 Course/Activity/Booking/Test 请求模型;rbac_operator.py 增四件套端点 (含 create/status/patch),走 operator 角色 + action:* 权限码 + write_audit。
This commit is contained in:
@@ -59,6 +59,49 @@ class ConfigUpdateRequest(BaseModel):
|
||||
|
||||
# ── 算力对接(compute-engine)─────────────────────────────────────────────
|
||||
|
||||
# ── 培训业务四件套(课程 / 活动 / 报名 / 测评)→ 桥接 app.training ─────────
|
||||
|
||||
class CourseCreateRequest(BaseModel):
|
||||
title: str
|
||||
category: str = ""
|
||||
level: str = ""
|
||||
subtitle: str = ""
|
||||
desc: str = ""
|
||||
price: float = 0
|
||||
status: str = "draft"
|
||||
start_at: str = ""
|
||||
end_at: str = ""
|
||||
venue: str = ""
|
||||
quota: int = 0
|
||||
image: str = ""
|
||||
host: str = ""
|
||||
|
||||
|
||||
class CourseStatusRequest(BaseModel):
|
||||
status: str # draft/published/ended/offline
|
||||
|
||||
|
||||
class ActivityStatusRequest(BaseModel):
|
||||
status: str # open/invite/pending/done/ended
|
||||
|
||||
|
||||
class BookingUpdateRequest(BaseModel):
|
||||
status: str | None = None
|
||||
audit_status: str | None = None
|
||||
note: str | None = None
|
||||
|
||||
|
||||
class TestCreateRequest(BaseModel):
|
||||
title: str
|
||||
category: str = ""
|
||||
pass_score: int = 0
|
||||
question_count: int = 30
|
||||
|
||||
|
||||
class TestStatusRequest(BaseModel):
|
||||
status: str # enabled/disabled
|
||||
|
||||
|
||||
class ComputePingResponse(BaseModel):
|
||||
ok: bool
|
||||
version: str | None = None
|
||||
|
||||
Reference in New Issue
Block a user