27 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 路径。