diff --git a/openspec/changes/fix-package-usage-paid-amount-cost-snapshot/.openspec.yaml b/openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/.openspec.yaml similarity index 100% rename from openspec/changes/fix-package-usage-paid-amount-cost-snapshot/.openspec.yaml rename to openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/.openspec.yaml diff --git a/openspec/changes/fix-package-usage-paid-amount-cost-snapshot/design.md b/openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/design.md similarity index 100% rename from openspec/changes/fix-package-usage-paid-amount-cost-snapshot/design.md rename to openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/design.md diff --git a/openspec/changes/fix-package-usage-paid-amount-cost-snapshot/proposal.md b/openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/proposal.md similarity index 100% rename from openspec/changes/fix-package-usage-paid-amount-cost-snapshot/proposal.md rename to openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/proposal.md diff --git a/openspec/changes/fix-package-usage-paid-amount-cost-snapshot/specs/package-lifecycle/spec.md b/openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/specs/package-lifecycle/spec.md similarity index 100% rename from openspec/changes/fix-package-usage-paid-amount-cost-snapshot/specs/package-lifecycle/spec.md rename to openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/specs/package-lifecycle/spec.md diff --git a/openspec/changes/fix-package-usage-paid-amount-cost-snapshot/tasks.md b/openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/tasks.md similarity index 100% rename from openspec/changes/fix-package-usage-paid-amount-cost-snapshot/tasks.md rename to openspec/changes/archive/2026-08-13-fix-package-usage-paid-amount-cost-snapshot/tasks.md diff --git a/openspec/specs/package-lifecycle/spec.md b/openspec/specs/package-lifecycle/spec.md index fbfda62..6e1a3b8 100644 --- a/openspec/specs/package-lifecycle/spec.md +++ b/openspec/specs/package-lifecycle/spec.md @@ -38,6 +38,25 @@ - **WHEN** 操作者为已有系列授权添加套餐 - **THEN** 系统返回同一店铺和系列的候选套餐及其授权状态,且不改变现有套餐管理提交接口的调价和删除语义 +### Requirement: 套餐使用记录价格快照 + +系统 SHALL 在创建套餐使用记录时分别快照套餐成本价与零售价:`paid_amount`(成本价)SHALL 取订单 `seller_cost_price`(销售成本价,即卖家店铺向平台结算的成本),`retail_amount`(零售价)SHALL 取订单 `total_amount`(零售总价)。成本价与实付金额在个人客户场景下不相等时,`paid_amount` MUST 使用成本价而非实付金额。 + +#### Scenario: 个人客户购买时快照成本价与零售价 + +- **WHEN** 个人客户为资产购买套餐,店铺成本价 10900 分,零售价 15900 分,客户实付 15900 分 +- **THEN** 创建的套餐使用记录 `paid_amount = 10900`,`retail_amount = 15900` + +#### Scenario: 代理钱包自购时快照成本价与零售价 + +- **WHEN** 代理以钱包支付为自有资产购买套餐,成本价 7000 分,零售价 9900 分 +- **THEN** 创建的套餐使用记录 `paid_amount = 7000`,`retail_amount = 9900` + +#### Scenario: 赠送套餐时快照零成本价与零售价 + +- **WHEN** 平台赠送套餐,零售价 9900 分,成本价 0 分 +- **THEN** 创建的套餐使用记录 `paid_amount = 0`,`retail_amount = 9900` + ## 可达操作索引 本节只用于入口导航,不是行为 Requirement;业务义务以上述 Requirements 为准。