world/README.md

47 lines
2.3 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.

# world 世界定义与管理模块W-01 世界管理)
## 功能
- world 表 CRUD创建/更新/删除/查询)
- 分页列表查询sqlPaging + 复合索引 idx_world_list
- 创建自动编码W + 时间戳 + 随机4位全局唯一冲突重试 3 次)
- mode 白名单硬校验draft/active/paused/archived与流转规则校验
- world_mode / world_type 编码字典幂等落库appcodes + appcodes_kv
## 数据表
`world`models/world.json 四段式 summary/fields/indexes/codes
- id VARCHAR(32) PKstr 32getID() 生成,禁 uuid
- code VARCHAR(64) 唯一(唯一索引 idx_world_code
- name VARCHAR(255) NOT NULL
- description TEXT
- mode VARCHAR(32) NOT NULL DEFAULT 'draft'
- world_type VARCHAR(32)
- owner_id / org_id VARCHAR(32)
- created_at / updated_at TIMESTAMP
- 复合索引 idx_world_list(org_id, mode, created_at)
## 安装集成
1. 模块仓库克隆到宿主应用 pkgs/`pip install .`
2. 宿主应用 `app/{app}.py` 引入 `from world.init import load_world` 并在 init() 调用 `load_world()`
3. 宿主应用定义 `get_module_dbname('world')` 映射到实际库名(禁止模块内硬编码 DBNAME
4. `scripts/load_path.py` 注册 RBAC 路径(禁通配符)
5. 构建:`bash build.sh`(生成 DDL、CRUD UI、链接 wwwroot
## 关键接口(经 load_world() 注册)
- `create_world(params)` → 自动编码mode 默认 draft非法 mode/流转 100% 拦截;编码冲突重试 3 次
- `update_world(params)` → 部分更新mode 变更走流转校验code 变更走全局唯一校验
- `delete_world(params)` / `get_world(params)`
- `list_worlds(params)` → 分页 {list, total, page, page_size}
- `set_world_mode(params)` → 模式切换严格校验draft→active⇄paused、active/paused→archived、archived→active
- `get_world_mode_options()` / `get_world_type_options()` → 下拉数据源 [{value, text}]
REST 前缀 `/api/*`create_world.dspy / world_update.dspy / world_delete.dspy /
get_world.dspy / list_worlds.dspy / set_world_mode.dspy /
get_search_status.dspy / get_search_world_type.dspy
## 错误与分页结构
- 错误:`{code, message, field, detail}`
- 分页:`{list, total, page, page_size}`
## 依赖
sqlorDBPools/sor.C/U/D/R/sqlPaging/sqlExe、ahserverServerEnv、appbaseappcodes/appcodes_kv