# Change: 客户账号管理模块

## Why

平台需要统一管理代理商账号和企业账号：
1. 查询客户账号列表（UserType=3 代理 或 UserType=4 企业）
2. 为代理商新增账号
3. 编辑客户账号
4. 修改客户账号密码
5. 启用/禁用客户账号

**说明**：企业账号通过新增企业时创建，此模块主要用于代理商账号的新增。

## What Changes

### 新增 API 接口

| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/admin/customer-accounts` | 客户账号列表 |
| POST | `/api/admin/customer-accounts` | 新增代理商账号 |
| PUT | `/api/admin/customer-accounts/:id` | 编辑账号 |
| PUT | `/api/admin/customer-accounts/:id/password` | 修改密码 |
| PUT | `/api/admin/customer-accounts/:id/status` | 启用/禁用 |

### 技术实现

- 新增 Handler：`internal/handler/admin/customer_account.go`
- 新增 Service：`internal/service/customer_account/service.go`
- 新增 DTO：`internal/model/dto/customer_account_dto.go`

### 业务逻辑

**查询账号**：
- 过滤条件：`user_type IN (3, 4)`
- 数据权限：平台看全部，代理看自己店铺+下级店铺的代理账号+归属企业的账号

**新增账号**：
- 只能新增代理商账号（UserType=3）
- 企业账号通过新增企业创建

## Impact

### 影响的规范
- **新增 Capability**：`customer-account-management`

### 影响的代码

**新增文件**（约 250 行）：
- `internal/handler/admin/customer_account.go`（~80 行）
- `internal/service/customer_account/service.go`（~120 行）
- `internal/model/dto/customer_account_dto.go`（~50 行）

### 兼容性
- ✅ 向后兼容：新增 API

## Dependencies

- 依赖提案：`add-enterprise-management`
- 依赖现有模型：`Account`、`Shop`、`Enterprise`

## Testing Strategy

1. **单元测试**：账号 CRUD 逻辑
2. **集成测试**：完整 CRUD 流程
3. **数据权限测试**：代理商只能看到自己范围内的账号
