Files
junhong_cmp_fiber/openspec/changes/refactor-traffic-model-semantics/specs/iot-package/spec.md
huang fe4c545308
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
修正数据
2026-04-27 18:10:08 +08:00

2.1 KiB
Raw Blame History

MODIFIED Requirements

Requirement: 套餐实体定义

系统 SHALL 定义套餐(Package)实体,包含套餐的基本属性、定价、流量配置,以及用于展示映射的内部比例字段。

实体字段:

  • real_data_mb: 真流量额度MB套餐真实总量
  • virtual_data_mb: 虚流量额度MB业务停机阈值必须大于 0 且小于等于 real_data_mb
  • virtual_ratio: 内部展示映射比例,定义为 real_data_mb / virtual_data_mb
  • enable_virtual_data: 是否启用虚流量(未启用时 virtual_ratio = 1.0

约束:

  • enable_virtual_data = true 时,virtual_data_mb MUST 大于 0
  • enable_virtual_data = true 时,virtual_data_mb MUST 小于等于 real_data_mb
  • virtual_ratio 由 Service 层自动计算并存储,不由调用方传入

Scenario: 创建启用虚流量的套餐

  • WHEN 平台创建套餐,real_data_mb=100virtual_data_mb=70enable_virtual_data=true
  • THEN 系统自动计算并存储 virtual_ratio = 100 / 70 ≈ 1.428571

Scenario: 创建虚流量大于真流量的套餐失败

  • WHEN 平台创建套餐,real_data_mb=100virtual_data_mb=120enable_virtual_data=true
  • THEN 系统拒绝保存并返回参数错误

Requirement: 套餐流量类型和真虚流量共存

系统 SHALL 支持同一套餐同时定义真实总量和业务阈值,但 virtual_data_mb 不再表示与真流量相加的“另一份总量”,而是展示映射与停机判断所依赖的阈值。

流量类型定义:

  • 真流量(real_data_mb): 套餐真实总量
  • 虚流量(virtual_data_mb): 业务停机阈值和展示映射基准
  • 未启用虚流量: virtual_data_mb 视为等于 real_data_mb

Scenario: 真总量与虚阈值并存

  • WHEN 平台创建套餐,real_data_mb=100virtual_data_mb=70
  • THEN 系统将其解释为“真实总量 100、业务阈值 70”而不是“总量 170”

Scenario: 不允许纯虚流量套餐

  • WHEN 平台尝试创建 real_data_mb=0virtual_data_mb>0 的套餐
  • THEN 系统拒绝保存并返回参数错误