# Home 模块业务逻辑

## 模块职责

Home 模块负责登录后的首页工作台，包括当前景区展示、工作状态、位置上报入口、快捷操作、常用应用和全部功能入口。

首页菜单来自 `PermissionContext` 中的角色权限。当前模块只同步首页壳和入口路由，入口背后的业务子模块后续逐个迁移。

## 菜单生成

`HomeViewModel` 从当前角色的权限树递归提取菜单：
- 当前角色 ID 存在但找不到时清空菜单。
- 当前角色 ID 为空时使用第一个角色。
- URI 按旧工程顺序排序。
- 同义 URI 按 `HomeMenuRouter.menuAliasKey` 去重。

## 常用应用

`HomeCommonMenuStore` 使用 UserDefaults 保存常用应用 URI：
- 首次无配置时写入默认常用应用。
- 读取时按当前角色权限过滤不可用 URI。
- 添加和移除时按同义 URI 去重。

## 路由规则

`HomeMenuRouter` 将权限 URI 分为四类：
- `tab`：切换到订单或数据 Tab。
- `destination`：进入已接入的本地页面，如个人信息、景区选择、权限申请、全部功能。
- `unsupported`：已知 iOS 不支持的入口，进入占位说明。
- `placeholder`：未知或未迁移入口，记录诊断并进入占位说明。

`HomeView` 不创建自己的 `NavigationStack`，而是使用 Main Tab 注入的 `RouterPath` 进行页面跳转。

## 后续迁移

目前 `payment_collection`、`payment_qr`、`payment_code` 已由 `Features/Payment` 的真实收款页面接管，`wallet` 已由 `Features/Wallet` 的真实钱包页面接管，`scenicselection`、`permission_apply`、`permission_apply_status`、`scenicapplication` 已由 `Features/ScenicPermission` 接管。`withdrawal_audit` 仍属于后台性质的提现审核管理模块，`scenic_settlement` 和 `scenic_settlement_review` 仍属于独立结算模块，本轮保留占位，后续应作为独立功能迁移。

后续迁移具体首页子模块时，应先在 `HomeRoute` 增加目标页面，再更新 `HomeMenuRouter.resolve` 对应 URI 的映射，并同步补充单元测试。
