# WildPhotographerReport 模块业务逻辑

## 模块职责

WildPhotographerReport 模块负责首页 `report_photographer` 入口，为摄影师和景区运营提供「举报摄影师」能力。

本模块与 `LocationReport`（位置上报）无关：前者是用户举报疑似打野/未戴工牌摄影师，后者是摄影师 GPS 打卡。

当前阶段使用 Mock 数据完成业务闭环，不接入真实后端接口。

## 页面流程

```mermaid
flowchart TD
    Home[举报摄影师首页] --> Submit[提交举报]
    Home --> List[我的举报]
    Home --> Map[附近风险地图]
    Home --> Rules[举报规则]
    Submit -->|提交成功| Success[举报成功]
    Success --> Detail[举报详情]
    List --> Detail
    Detail --> Supplement[补充证据]
    Detail --> Map
```

## 核心实体

| 类型 | 说明 |
| --- | --- |
| `WildReportType` | 举报类型：疑似打野 / 未戴工牌 / 其他 |
| `WildReportStatus` | 处理状态：待处理 / 处理中 / 已处理 |
| `WildReportRecord` | 举报记录 |
| `WildReportRiskPoint` | 附近风险点 |
| `WildReportSupplementaryEvidence` | 补充证据 |

## 数据来源

- 全部 Mock 数据由 `WildPhotographerReportMockStore` 提供种子数据。
- `WildPhotographerReportHomeViewModel` 持有共享举报列表，提交页、列表页、详情页通过依赖注入共享。
- 提交页定位使用 `ForegroundLocationProvider` 前台即时定位；失败时回退到 `fallbackLocation`。

## 提交规则

1. 图片或视频至少上传一项。
2. 举报说明必填，最多 500 字。
3. 举报位置必须已确认。
4. 举报类型默认「疑似打野」。
5. 提交成功后生成 `JB` + 日期 + 3 位序号，状态为「待处理」。

## 路由

- 权限 URI：`report_photographer`
- 首页路由：`HomeRoute.photographerReport`
- 入口不固定置顶，依赖权限下发或用户手动添加到常用应用（`HomeCommonMenuStore.androidHomeMenuURIs` 白名单已包含该 URI）。

## 与 LocationReport 的边界

| 模块 | URI | 用途 | 后端 |
| --- | --- | --- | --- |
| WildPhotographerReport | `report_photographer` | 举报摄影师 | Mock |
| LocationReport | `location_report` | 位置上报 | 真实 API |

## 测试要求

- `WildPhotographerReportTests`：Home/Submit/List ViewModel 校验与提交成功路径。
- `HomeMenuRouterTests`：`report_photographer` 路由映射。
