scene 模块

场景管理(W-02):场景表 CRUD、列表查询、场景文件导入(JSON/JSON Lines/CSV)。

功能

  • scene 表 CRUD(list/get/create/update/delete),分页 {list, total}
  • scene_import 表只读列表(导入记录)
  • 场景导入 api/scene_import.dspy:world_id + file → 解析 → 事务批量落库 → 写导入记录
  • 枚举字段 appcodes 字典(scene_type / scene_status / import_status)
  • 世界下拉(依赖 world 模块,world_id 逻辑关联,不加物理外键)

数据表

  • scene:id(str32 PK)、world_id(str32→world.id 逻辑关联)、name(255)、code(64 唯一)、 description(text)、scene_type(16)、status(16)、config_json(text)、created_at、updated_at
  • scene_import:id(str32 PK)、world_id、file_name(255)、total/success/fail(int)、status(16)、created_at

接口(REST 统一前缀 /api/,宿主应用挂载后路径为 /scene/api/.dspy)

  • GET/POST list_scenes.dspy → {status, data:{list, total}}(支持 page/rows/sort/order/world_id/name/code/scene_type/status 过滤)
  • GET get_scene.dspy?id= → 单条
  • POST create_scene.dspy / scene_update.dspy / scene_delete.dspy
  • POST scene_import.dspy(multipart: world_id + file)→ {status, data:{success,total,success_count,fail}}
  • GET get_search_world_id.dspy / get_search_scene_type.dspy / get_search_status.dspy → [{value,text}]

错误结构(统一)

{code, message, field, detail},code 取值:PARAM_REQUIRED / FIELD_REQUIRED / FIELD_TOO_LONG / WORLD_NOT_FOUND / DUPLICATE_CODE / PARSE_ERROR / DB_ERROR / NOT_FOUND。

集成

宿主应用入口 init() 调用 load_scene()(from scene.init import load_scene)。 库名统一 ServerEnv().get_module_dbname("scene"),world 表用 get_module_dbname("world"),禁止硬编码。

开发顺序

2(依赖 world)。

Description
No description provided
Readme 42 KiB