27 lines
1.1 KiB
Markdown
27 lines
1.1 KiB
Markdown
# pbl_domain_ext 模块技能(自动生成骨架 + 人工补充)
|
||
|
||
## 定位
|
||
world/scene/entity 薄扩展:租户/班级/团队关联(M8,不改基表)
|
||
|
||
## 挂载
|
||
`from pbl_domain_ext.init import load_pbl_domain_ext` → `load_pbl_domain_ext()`(应用 app/pbls.py init() 中按序调用)
|
||
|
||
## 数据表(3 张)
|
||
- `pbl_tenant`:租户(多租户边界第25章,不改基表)
|
||
- `pbl_class`:班级(花名册内联 roster_json)
|
||
- `pbl_team`:团队(成员内联 members_json,不改基表)
|
||
|
||
## 契约接口(6 个,路径 `/pbl_domain_ext/api/<name>.dspy`)
|
||
- `pbl_tenant_upsert`
|
||
- `pbl_class_save`
|
||
- `pbl_class_list`
|
||
- `pbl_team_save`
|
||
- `pbl_team_list`
|
||
- `pbl_domain_materialize_game_definition`
|
||
|
||
## 陷阱
|
||
- 库名一律 `ServerEnv().get_module_dbname('pbl_domain_ext')`,禁止硬编码 DBNAME。
|
||
- sqlor 只有 `C/U/D/R/I/sqlExe`;查询走 pbl_common.api 的 q_all/q_one(已适配)。
|
||
- 所有读写强制带 `tenant_id`(pbl_common.api.tenant_id()),缺失即 fail-closed 报错。
|
||
- 新增契约需同步三处:api.py 定义 + __init__.py 导出 + init.py env 注册 + scripts/load_path.py 路径。
|