# 一次性佣金时效管理

## ADDED Requirements

### Requirement: 时效类型配置

系统 SHALL 支持三种一次性佣金时效类型：永久（permanent）、固定日期（fixed_date）、相对时长（relative）。

#### Scenario: 配置永久有效
- **WHEN** 配置一次性佣金规则时设置 `validity_type = permanent`
- **THEN** 系统 SHALL 保存该配置
- **AND** 该规则永久有效，不会过期

#### Scenario: 配置固定到期日期
- **WHEN** 配置一次性佣金规则时设置 `validity_type = fixed_date`
- **AND** `validity_value = "2025-12-31"`
- **THEN** 系统 SHALL 保存该配置
- **AND** 该规则在 2025-12-31 23:59:59 后失效

#### Scenario: 配置相对时长
- **WHEN** 配置一次性佣金规则时设置 `validity_type = relative`
- **AND** `validity_value = "3"` (表示 3 个月)
- **THEN** 系统 SHALL 保存该配置
- **AND** 该规则从创建时间起 3 个月后失效

### Requirement: 过期规则不触发返佣

当一次性佣金规则过期时，系统 SHALL 不再触发返佣，即使满足触发条件（首充/累计充值）。

#### Scenario: 规则过期后首充
- **WHEN** 一次性佣金规则已过期
- **AND** 客户首充达到阈值
- **THEN** 系统 SHALL 不触发一次性佣金
- **AND** 正常完成充值和套餐购买

#### Scenario: 规则有效期内首充
- **WHEN** 一次性佣金规则在有效期内
- **AND** 客户首充达到阈值
- **THEN** 系统 SHALL 触发一次性佣金
- **AND** 按链式分配规则分配佣金

### Requirement: 梯度统计周期与时效一致

当一次性佣金使用梯度模式时，梯度统计周期（销量/销售额）SHALL 与一次性佣金时效一致。时效结束后统计归零。

#### Scenario: 时效内统计
- **WHEN** 一次性佣金时效为 3 个月
- **AND** 使用销量梯度
- **THEN** 销量统计 SHALL 只计算这 3 个月内的销量

#### Scenario: 时效结束后统计重置
- **WHEN** 一次性佣金时效到期
- **AND** 配置了新的一次性佣金时效
- **THEN** 销量/销售额统计 SHALL 从零开始
