# Invite 模块业务逻辑

## 模块职责

Invite 模块负责首页 `registration_invitation`、`photographer_invite` 和 `invite_record` 入口。

邀请页展示邀请码、邀请链接、二维码和规则；邀请记录页展示邀请用户和奖励记录。模块不保存业务状态到全局对象。

## 邀请页

`PhotographerInviteViewModel` 通过 `InviteAPI.inviteInfo()` 获取邀请信息，并使用 CoreImage 在本地生成二维码图片。二维码图片只用于当前页面展示，不落盘。

复制邀请链接时只由 View 层写入剪贴板，ViewModel 不关心系统剪贴板状态。

## 邀请记录

`InviteRecordViewModel` 提供“邀请记录 / 奖励记录”分段：
- 邀请记录来自 `InviteAPI.inviteUserList`。
- 奖励记录复用 `WalletAPI.walletEarningDetail`。
- 顶部奖励汇总复用 `WalletAPI.walletSummary(type: 2)`。

分页状态、筛选分段和展示行只存在 ViewModel 内存中。

## 接口边界

`InviteAPI` 只封装邀请信息和邀请用户列表。钱包收益和提现入口继续由 Wallet 模块负责，Invite 模块只调用其公开服务协议，不持有钱包业务状态。

## 缓存边界

邀请码、邀请记录、奖励记录和二维码都不落盘。后续如果需要分享图片，应在分享流程中临时生成。
