# 排队管理模块

## 模块职责

`Features/QueueManagement` 承接首页 `/scenic-queue` 和 `queue_management` 权限入口，负责景区打卡点队列列表、叫号、过号、完成、重新排队、用户标记、队列设置、排队二维码和配置日志。

## 代码结构

- `ScenicQueueAPI`：封装 `/api/app/scenic-queue/...` 和 `/api/app/socket-token`。
- `QueueManagementViewModel`：管理已保存打卡点门禁、当前排队/过号列表分页、统计、队列动作和页面前台实时监听。
- `ScenicQueueSettingsViewModel`：管理打卡点设置加载、本地快照兜底、表单校验、保存、二维码和配置日志。
- `ScenicQueueSettingsStore`：按 `userId + scenicId + spotId` 作用域保存本地排队设置，并兼容旧 key。
- `Core/Queue`：承接排队 WebSocket、远端叫号去重、语音播报和页面离开后的短轮询运行时。

## 业务边界

- 列表页从当前账号景区和打卡点上下文读取数据；没有已保存打卡点时只显示设置引导，不自动选择第一个打卡点。
- 叫号成功后只做本地已叫号标记；过号、完成、重新排队和用户标记成功后刷新当前打卡点列表。
- 页面可见时由 `QueueManagementViewModel` 维护 WebSocket 监听；页面离开后由 `ScenicQueueRuntime` 按本地开关进行短轮询。
- 设置保存前校验拍摄时长、通知阈值、播报间隔、读秒阈值、排队范围、排队次数、过号顺延和自定义播报长度。
