feat(admin): add module settings to toggle trading feature

Introduce module_settings table to store global feature flags
Add admin UI to enable or disable the Trading module
Hide trading-related UI and skip data fetching when disabled
This commit is contained in:
2026-05-10 16:59:07 +08:00
parent 26bef1b749
commit 42319695e9
11 changed files with 271 additions and 85 deletions

View File

@@ -12,6 +12,7 @@
- 全局顶部导航栏承载语言切换、通知、User Profile 和登录 / 退出等账号操作;除 User Profile 可展示用户名外,顶部操作以图标按钮呈现。
- 全局顶部导航栏提供全站搜索。搜索结果按内容类型分组展示,覆盖 Pokemon、Habitats、Items、Ancient Artifacts、Recipes、Daily CheckList、公开可见的 Life Post 和公开用户 Profile结果跳转到对应公开详情页、页面锚点或 `/profile/:id`
- 管理入口用于维护全局配置、语言、系统文案、列表排序和每日 CheckList。
- 管理员可在管理入口启用或禁用模块级功能开关Trading 模块关闭时保留 `has_trading` 和 Trading 观察数据,但前台与编辑界面不展示 Trading 相关功能。
## 技术栈
@@ -459,10 +460,25 @@
- 名称
- 是否有掉落物:`has_item_drop`
- 是否支持 Trading`has_trading`
- `has_trading` 是特长自身能力配置不作为模块显示开关Trading 模块关闭时该字段和已有 Trading 观察数据保留。
- 已移除 `subcategory` 字段。
- 当特长允许掉落物时Pokemon 编辑中可为该 Pokemon + 特长配置一个掉落物品。
- 当 Pokemon 选择了至少一个支持 Trading 的特长时Pokemon 详情页可直接维护该 Pokemon 对物品的 Trading 偏好观察。
### 模块设置
- 模块设置存储在 `module_settings`,当前包含:
- `trading_enabled`:控制 Trading 相关界面和推断展示,默认启用。
- 管理端查看模块设置需要 `admin.config.read`,更新模块设置需要 `admin.config.update`
- 关闭 Trading 模块时:
- 不删除、不清空 `skills.has_trading`
- 不删除、不清空 `pokemon_trading_items`
- Pokemon 详情页不展示 Trading 区块或管理 Trading 入口。
- Pokemon 创建 / 编辑流程不展示 Trading 相关编辑能力。
- Item 详情页不展示基于 Trading 观察推断的 Possible Tags 和证据区块。
- 管理端 Skill 配置不展示 `has_trading` 勾选项或列表标记。
- 重新启用 Trading 模块后,已有配置和观察数据恢复参与界面展示与推断。
### Pokemon Types
- 名称