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)

Description
No description provided
Readme 36 KiB