world/README.md

2.3 KiB
Raw Blame History

world 世界定义与管理模块W-01 世界管理)

功能

  • world 表 CRUD创建/更新/删除/查询)
  • 分页列表查询sqlPaging + 复合索引 idx_world_list
  • 创建自动编码W + 时间戳 + 随机4位全局唯一冲突重试 3 次)
  • mode 白名单硬校验draft/active/paused/archived与流转规则校验
  • world_mode / world_type 编码字典幂等落库appcodes + appcodes_kv

数据表

worldmodels/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