# merchant 语义重构收口记录

## 背景
项目在基础阶段曾短暂使用 `tenant` 语义，但当前产品定位已经明确为“总台管理 + 站点后台 + 商家后台”的 SaaS 电商结构，因此数据库层、代码层、页面层统一收口到 `merchant / 商家` 更符合后续长期演进方向。

## 本轮结论
`tenant -> merchant` 主链路重构已基本完成，当前项目基线统一采用：
- 表：`merchants`
- 外键：`merchant_id`
- 领域模型：`Merchant`
- 页面文案：`商家`
- 总台站点管理入口：`/admin/merchants`
- 商家后台入口：`/merchant-admin`

## 已完成项

### 数据库基线
- 基线表已统一为 `merchants`
- 相关业务表统一使用 `merchant_id`
- 相关外键已指向 `merchants`
- 已通过 `php artisan migrate:fresh --seed` 验证

### 代码层
- 模型关系已统一使用 `merchant()`
- 总台管理控制器已切到 `MerchantController`
- 商家后台上下文统一使用 `admin_merchant_id`
- 总台管理与商家后台鉴权边界均已验证通过
- API 入参 / 返回中的商家归属字段已统一为 `merchant_id`

### 页面与文案
- 总台管理 dashboard / 商品 / 分类 / 订单 / 渠道配置页已改为商家语义
- 总台站点管理页统一为 `admin/merchants`
- 首页与后台入口文案均已完成阶段性收口

### 缓存与配置
- 总台站点列表缓存 key 已统一为 `platform:merchants:list:page:{page}`
- 总台基础配置项已从 `tenant_mode` 调整为 `merchant_mode`

### 验证结果
已完成以下验证：
- `php artisan migrate:fresh --seed`
- `php artisan optimize:clear`
- `php artisan route:list --path=admin`
- `php artisan route:list --path=merchant-admin`
- `php artisan route:list --path=api/v1`
- 总台账号登录总台管理成功
- 商家账号登录商家后台成功
- 商家账号访问总台管理返回 403
- 总台账号访问商家后台返回 403
- 总台 / 商家关键页面与基础 API 返回正常

## 收尾原则
为了保持开发环境基线干净：
1. 不再继续引入新的 `tenant` 语义
2. 不再新增兼容性双命名
3. 文档、配置、缓存 key、页面文案统一使用 `merchant`
4. 后续新功能在此基线上继续推进

## 当前剩余事项
1. 继续补表单 `old()` 回填
2. 给总台 / 商家订单列表增加筛选条件
3. 补总台配置编辑能力
4. 后续视情况升级分页缓存失效策略
