scene/README.md
2026-08-29 12:44:22 +08:00

34 lines
1.8 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.

# scene 模块
场景管理W-02场景表 CRUD、列表查询、场景文件导入JSON/JSON Lines/CSV
## 功能
- `scene` 表 CRUDlist/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