# Capability: 分配成本价历史管理

## Purpose

本 capability 定义如何记录和查询套餐分配的成本价变更历史，支持审计和纠纷处理，确保历史记录不可篡改。

## Requirements

### Requirement: 成本价调整时记录历史

系统 SHALL 在代理调整套餐分配的成本价时，创建成本价变更历史记录。历史记录 MUST 包含：旧成本价、新成本价、变更原因、变更人、生效时间。

#### Scenario: 单个调整时创建历史记录
- **WHEN** 代理将套餐A的成本价从10000分调整为11000分，原因为"市场调价"
- **THEN** 系统创建历史记录：old = 10000, new = 11000, reason = "市场调价"

#### Scenario: 批量调整时批量创建历史记录
- **WHEN** 代理批量调整100个套餐的成本价
- **THEN** 系统创建100条历史记录

#### Scenario: 历史记录包含变更人信息
- **WHEN** 用户ID为456的代理调整成本价
- **THEN** 历史记录的 changed_by = 456

#### Scenario: 历史记录记录生效时间
- **WHEN** 代理在2026-01-28 10:00:00调整成本价
- **THEN** 历史记录的 effective_from = 2026-01-28 10:00:00

---

### Requirement: 查询成本价变更历史

系统 SHALL 允许代理查询指定套餐分配的成本价变更历史，按生效时间倒序排列。

#### Scenario: 查询套餐分配的成本价历史
- **WHEN** 代理查询分配ID为123的成本价历史
- **THEN** 系统返回该分配的所有成本价变更记录，最新变更在最前

#### Scenario: 历史记录包含完整变更信息
- **WHEN** 查询成本价历史
- **THEN** 每条记录包含：旧成本价、新成本价、变更原因、变更人、生效时间

#### Scenario: 支持按时间范围筛选历史
- **WHEN** 代理查询2026年1月的成本价变更
- **THEN** 系统返回effective_from在2026-01-01至2026-01-31之间的记录

---

### Requirement: 支持审计和纠纷处理

成本价历史记录 SHALL 支持审计和纠纷处理，系统 MUST 保证历史记录不可篡改（只能创建，不能修改或删除）。

#### Scenario: 历史记录不可修改
- **WHEN** 尝试修改已创建的历史记录
- **THEN** 系统拒绝操作

#### Scenario: 历史记录不可删除
- **WHEN** 尝试删除已创建的历史记录
- **THEN** 系统拒绝操作
