chore(contracts): 同步 0.5.0/0.7.0/0.4.0(场景管理路由与 Scene 模型)

This commit is contained in:
opendance
2026-09-17 00:27:08 +08:00
parent 47fc8e76b7
commit 47e11af7d0
4 changed files with 136 additions and 6 deletions
+22 -1
View File
@@ -36,7 +36,7 @@ DB_LOGGING=false
- 每个 migration 必须可逆(提供 `down` 方法)
- 迁移文件名格式:`<timestamp>-<kebab-name>.ts`
## 增量迁移(v0.2.0 / v0.3.0)
## 增量迁移(v0.2.0 / v0.4.0)
| 迁移 | 变更 |
|--|--|
@@ -63,3 +63,24 @@ draft ──submit──▶ pending ──approve──▶ published
- `published` 才可被 Windows 客户端 / Android App 消费
- `/api/catalog/export` 只导出 `published` 记录
---
## 场景表 `scenes`(v0.4.0 / T-WEB-015)
| 列 | 类型 | 说明 |
|--|--|--|
| `id` | bigint PK | |
| `name` | varchar(200) | 场景名称 |
| `glb_asset_id` | bigint NULL | 场景 GLB(以 GLB 为主,不转 VRM) |
| `thumbnail_asset_id` | bigint NULL | 缩略图 |
| `config` | **mediumtext** NULL | `SceneConfig` JSON(物理 / 环境 / 出生点 / 相机) |
| `stats` | **mediumtext** NULL | 场景 GLB 分析结果(复用模型检查器) |
| `file_size` / `file_sha256` / `conversion_note` | - | 与 models 同义 |
| `source_type` `source_name` `source_url` `license` `author` | - | 来源五元组(必填) |
| `status` | varchar(16) | 上传一律 `pending`,审核后 `published`/`rejected` |
| `created_at` `updated_at` `deleted_at` | datetime | 软删除 |
* `config` / `stats` 用 **MEDIUMTEXT**(TEXT 的 64KB 上限在 `models.stats` 上踩过坑);
* 迁移:`AddScenes1789650000000`(可逆,`down` 为 `DROP TABLE scenes`);
* 状态机与审核复用既有约定(审核走 `/api/reviews/scene/:id/approve|reject`)。