# 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) PK(str 32,getID() 生成,禁 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}` ## 依赖 sqlor(DBPools/sor.C/U/D/R/sqlPaging/sqlExe)、ahserver(ServerEnv)、appbase(appcodes/appcodes_kv)