# Change: 更新套餐管理API以支持新的佣金配置模型

## Why

根据最新的API文档（`docs/修改原来的套餐管理.md`），后端API规范发生了重大变更，主要涉及:

1. **套餐系列** - 新增一次性佣金配置支持（包括固定/梯度佣金、强制充值、时效类型等复杂配置）
2. **系列分配** - 佣金配置模型完全重构，从简单的base_commission改为更细粒度的配置
3. **单套餐分配** - 新增系列关联字段和分配者信息字段

当前前端实现的类型定义（`src/types/api/packageManagement.ts`）和API服务与新规范不匹配，需要更新以支持新的数据结构。

## What Changes

### 1. 类型定义重构

**修改**: `src/types/api/packageManagement.ts`

**套餐系列相关类型**:

- `PackageSeriesResponse` - 新增 `enable_one_time_commission` 和 `one_time_commission_config`
- `CreatePackageSeriesRequest` - 新增一次性佣金配置字段
- `UpdatePackageSeriesRequest` - 新增一次性佣金配置字段
- 新增 `SeriesOneTimeCommissionConfig` - 一次性佣金配置（支持固定/梯度模式）
- 新增 `OneTimeCommissionTier` - 梯度佣金档位配置

**系列分配相关类型**:

- **BREAKING**: `ShopSeriesAllocationResponse` - 完全重构字段结构
  - 移除: `base_commission` (BaseCommissionConfig)
  - 新增: `series_code`, `enable_force_recharge`, `enable_one_time_commission`, `force_recharge_amount`, `force_recharge_trigger_type`, `one_time_commission_amount`, `one_time_commission_threshold`, `one_time_commission_trigger`
- **BREAKING**: `CreateShopSeriesAllocationRequest` - 重构请求字段
- **BREAKING**: `UpdateShopSeriesAllocationRequest` - 重构请求字段
- 移除不再使用的类型: `BaseCommissionConfig`, `TierEntry`, `TierCommissionConfig`, `OneTimeCommissionTierEntry`, `OneTimeCommissionConfig`(旧版)

**单套餐分配相关类型**:

- `ShopPackageAllocationResponse` - 字段调整
  - 新增: `series_id`, `series_name`, `series_allocation_id`, `allocator_shop_id`, `allocator_shop_name`
  - 移除: `allocation_id` (重命名为 `series_allocation_id`), `calculated_cost_price`
- `ShopPackageAllocationQueryParams` - 新增 `series_allocation_id`, `allocator_shop_id` 筛选参数

### 2. API服务层无需修改

现有的API服务类（`PackageSeriesService`, `ShopSeriesAllocationService`, `ShopPackageAllocationService`）的方法签名保持不变，只是底层数据类型发生变化。

### 3. 页面/组件适配（实施阶段处理）

以下文件需要适配新的数据结构（本提案阶段不编写代码）:

- 套餐系列管理页面 - 需支持一次性佣金配置表单
- 系列分配页面 - 需重构佣金配置表单UI
- 单套餐分配页面 - 需展示新增的关联字段

## Impact

### 受影响的规范

- `package-series-management` - MODIFIED (新增一次性佣金配置能力)
- `shop-series-allocation` - MODIFIED (佣金配置模型重构)
- `shop-package-allocation` - MODIFIED (新增系列关联和分配者字段)

### 受影响的代码

- `src/types/api/packageManagement.ts` - **BREAKING CHANGE** 类型定义重构
- 所有使用 `ShopSeriesAllocationResponse` 的页面/组件 - 需适配新字段结构
- 所有使用 `PackageSeriesResponse` 的页面/组件 - 需处理新增的一次性佣金配置

### 依赖关系

- 后端API已按新规范实现（`docs/修改原来的套餐管理.md`）
- 前端需要先完成类型定义更新，再更新UI组件

### 风险评估

- **高风险**: 这是一个BREAKING CHANGE，会影响所有使用系列分配的功能
- **兼容性**: 需要确保后端API已更新，否则会导致运行时错误
- **迁移成本**: 现有页面中的表单组件需要重写以支持新的数据结构
- **测试需求**: 需要全面测试套餐系列、系列分配、单套餐分配的所有CRUD操作

### 建议迁移策略

1. 先更新类型定义，确保TypeScript编译通过
2. 逐个页面/组件适配新数据结构
3. 与后端联调确认新API规范工作正常
4. 完成后删除旧的、不再使用的类型定义
