## Why

`complete-july-iteration-test-release` 将七月迭代中的字段、筛选和局部缺陷扩大成模块迁移、通用平台和长依赖链，且遗漏或误解了多条 CSV 需求，已经不能作为可靠实施契约。feature-2026-july-confirmed-scope 依据已填写的需求范围确认表重新建立一个可直接上线的最小交付 Change：优先复用现有代码，完成用户可见需求，不借本期工作重构未触碰模块。

## What Changes

- 新 Change 完整替代 `complete-july-iteration-test-release` 的后续规划；旧 Change 在本 Change 校验通过前保留完成证据，之后归档为被替代，不继续执行其未完成任务。
- 实施遵循“存量能力优先”：优先修改或复用现有接口、字段、Service、Query、任务和基础设施；只有现有能力确实无法承载已确认需求时，才允许做边界最小、可说明必要性的新增。
- 本 Change 当前交付不编写或补齐测试代码，不运行单元、集成、验收或业务流程测试，也不执行 `go test`、`go build`、LSP 诊断、迁移和 OpenAPI 生成；只完成生产代码、必要迁移文件和契约文档至可联调状态，可使用 `gofmt`、只读检查与 `git diff --check` 做静态收口。
- 将 #189、#181、#57 等缺陷和 #53、#44、#182 等字段/筛选需求收敛为旧 Service、Store 和现有 Query 上的局部修改，不进行 DDD 迁移。
- 增加店铺级 C 端登录限制开关；仅阻止该店铺资产发起新登录，不建立代理 API 权限体系，也不强制吊销已登录 Token。
- 补齐三种实名顺序及卡/设备批量配置，保持既有 `realname_policy` 模型和前后端接口约定。
- 复用已有站内通知，完成换货单弹窗、固定 100 元钱包余额提醒、套餐 15/7/3 天临期列表和 C 端提醒，不建设通用营销平台。
- 复用已完成的渠道无关审批核心，交付最小企业微信 Adapter：管理员从通讯录为系统账号绑定 `(corp_id, userid)`，后台创建模板，本系统配置业务场景/模板/控件映射，完成发起、回调、详情查询和轮询补偿；不做扫码绑定、本地流程设计器或未来渠道抽象扩建。
- **BREAKING**：退款和员工线下代充值的人工审批结果改由企业微信终态驱动；新链路可用后停用原系统内人工通过/驳回入口。代理在线扫码充值后置。
- 交付单列 CSV 批量订购、六类业务导出、固定档位限速、按资产类型配置支付方式、CSV 批量分配设备等已确认功能，均复用现有导入、导出、Gateway、`system_config` 和任务基础设施。
- 冻结已经完成的 #45、#46、#55、#60、#86、#38、#94、#96、#98、#43，仅做接口联调或代码证据核验；冻结行业卡现有复机行为，不按旧提案改写。
- 明确排除原路退款、聚水潭、跨品类换货、分销佣金提现、代理在线扫码充值、通用营销/ERP、自动限速、本地审批流引擎、全局 Audit Event 专项，以及已关闭且不处理的需求。

## Capabilities

### New Capabilities

- `shop-client-login-control`: 店铺级 C 端新登录开关及资产登录拦截。
- `wecom-approval-integration`: 企微应用、通讯录账号映射、模板场景绑定、审批发起、回调和轮询补偿。
- `package-expiration-reminder`: 套餐 15/7/3 天临期列表、站内通知和 C 端弹窗提醒。
- `asset-package-batch-order`: 单列 CSV、整批统一套餐和支付方式的批量订购。
- `business-data-export`: lot 卡、钱包流水、套餐、退款、换货和代理充值六类独立导出。
- `asset-speed-tier-management`: 后台为有权限 IoT 卡手动选择固定限速档位并调用 Gateway；不提供设备限速。

### Modified Capabilities

- `card-replacement`: 换货前拦截活跃退款，并修复换货套餐在原订单退款后未失效的问题。
- `exchange-client-notification`: 创建物流换货单后复用站内通知在 C 端弹窗。
- `order-management`: 修复 C 端订单渠道和订单资产标识返回，并支持从历史订单使用稳定资产/套餐引用发起新的下架套餐续费订单。
- `refund-api`: 返回正确设备资产标识、提交人，并将退款审批结果切换为企微驱动。
- `agent-recharge`: 返回提交人，仅保留员工线下代充值并接入企微审批，代理在线扫码充值后置。
- `exchange-admin-management`: 换货列表和详情返回提交人。
- `asset-realname-policy`: 支持三种实名顺序、单资产修改、卡/设备批量修改和 C 端生效策略字段。
- `asset-queries`: 卡按自身实名状态筛选；设备任意一张有效绑定卡已实名即视为设备已实名。
- `agent-wallet`: 主钱包低于固定 100 元时向店铺业务员发送一次站内预警。
- `package-management`: 下架套餐从普通可购列表排除，但允许当前使用者通过续费入口购买。
- `payment-dynamic-config`: 通过 `system_config` 分别配置卡和设备允许的支付方式；两类资产初始化均全选钱包、微信和支付宝，三项可独立取消，C 端再按强充场景过滤钱包并由订单端复核。
- `device`: 复用现有导入任务模式，通过单列 CSV 批量分配设备所属代理或套餐系列。

## Impact

- **后端范围**：局部触及换货、订单、退款、充值、资产、店铺、套餐、钱包、设备导入、导出、通知和 Gateway；只有审批终态与资金处理保留现有 Application/Domain 边界，简单字段、筛选和 Bug 沿用 `Handler → Service → Store → Model` 或既有 Query。
- **API/前端**：新增店铺登录开关、企微账号选择/绑定、模板场景配置、实名批量配置、批量订购、导出、限速和设备批量分配接口；修改列表/详情字段、C 端初始化与支付方式返回。新增 Handler 必须同步 `cmd/api/docs.go`、`cmd/gendocs/main.go` 和 OpenAPI 文档。
- **数据与基础设施**：使用 PostgreSQL、Redis/Asynq、现有 Outbox、Integration Log、对象存储、站内通知和 `system_config`；不新增外键或 GORM 关联标签，不引入新依赖。
- **外部系统**：企业微信自建应用与 Gateway。企微上线需应用 Secret、审批权限、通讯录可见范围、可信 IP、回调 Token/EncodingAESKey 和模板 ID。
- **性能**：列表保持分页并批量解析提交人/审批人，禁止 N+1；批量实名上限 500 且事务全成全败；CSV/导出沿用异步任务，外部接口设置超时、幂等和补偿。
- **交付边界**：本 Change 以生产代码、迁移文件、接口契约、联调配置和实施证据齐备为完成标准；自动化测试、构建、LSP、迁移执行、OpenAPI 生成及真实企微/Gateway 环境验收均不在本次执行范围，后续联调或发布流程另行承担。
