## ADDED Requirements

### Requirement: Admin Current Package Expiry Base Contract

The admin asset information integration SHALL accept and preserve `expiry_base` from `GET /api/admin/assets/:identifier/current-package`.

#### Scenario: Accept additive expiry_base from current-package API

- **GIVEN** 用户正在查看后台“资产信息”中的“当前生效套餐”
- **AND** `GET /api/admin/assets/:identifier/current-package` 返回当前套餐数据
- **WHEN** 响应中包含 `expiry_base`
- **THEN** 前端类型契约 MUST 支持 `expiry_base`
- **AND** 页面状态 MUST 保留该字段原始值
- **AND** 支持的取值 MUST 包含 `from_activation` 与 `from_purchase`

#### Scenario: Missing expiry_base does not break current package parsing

- **GIVEN** `GET /api/admin/assets/:identifier/current-package` 返回当前套餐数据
- **AND** 响应中未返回 `expiry_base` 或该字段为空
- **WHEN** 前端解析当前套餐响应
- **THEN** 页面 MUST 继续保留现有套餐字段的解析行为
- **AND** MUST NOT 因缺少 `expiry_base` 导致“当前生效套餐”整体渲染失败

### Requirement: Admin Current Package Expiry Base Display

The admin asset information view SHALL display `expiry_base` as the expiry countdown base in the `当前生效套餐` card and MUST use the backend-provided value instead of inferring from time fields.

#### Scenario: Show activation-based expiry text on current package card

- **GIVEN** 用户正在查看后台“资产信息”中的“当前生效套餐”
- **AND** 当前套餐返回 `expiry_base` 为 `from_activation`
- **WHEN** 页面渲染套餐详情表格
- **THEN** 页面 MUST 显示“到期计时基准”
- **AND** 该字段的展示文案 MUST 为“实名激活时起算”

#### Scenario: Show purchase-based expiry text on current package card

- **GIVEN** 用户正在查看后台“资产信息”中的“当前生效套餐”
- **AND** 当前套餐返回 `expiry_base` 为 `from_purchase`
- **WHEN** 页面渲染套餐详情表格
- **THEN** 页面 MUST 显示“到期计时基准”
- **AND** 该字段的展示文案 MUST 为“购买时起算”

#### Scenario: Show placeholder when expiry_base is empty or unknown

- **GIVEN** 用户正在查看后台“资产信息”中的“当前生效套餐”
- **AND** 当前套餐的 `expiry_base` 为空、缺失或不是已知取值
- **WHEN** 页面渲染套餐详情表格
- **THEN** 页面 MUST 在“到期计时基准”位置显示稳定占位内容
- **AND** 页面 MUST NOT 根据 `start_time`、`expire_time` 或其他时间字段自行推断展示文案
