/// 在线购买套餐目录(App 内购买/续费弹窗用)。 /// /// 价格仅前端展示,实付金额以 pay 侧套餐表为准(下单响应回传 amount); /// biz_code 与后端 payPlans、官网 checkout 页三方一致,改动需同步。 class LicensePlan { final String bizCode; final int price; // 元(仅展示) final int days; const LicensePlan(this.bizCode, this.price, this.days); } class LicensePlanGroup { final String name; final List feats; final LicensePlan monthly; final LicensePlan annual; const LicensePlanGroup({ required this.name, required this.feats, required this.monthly, required this.annual, }); } class LicensePlans { /// 新店首月特惠:¥1 体验 30 天标准版全部功能,每个门店限购一次 /// (服务端强校验,前端据 GET /license/promo-status 置灰)。 static const promo = LicensePlan('promo_first_month', 1, 30); static const promoOriginalPrice = 299; // 划线原价(=标准版月付) static const promoFeats = [ '标准版全部功能,一分不少', '单门店 · 单仓库 · 2 台客户端', '1,000 张商品图片分享', '每个门店限购一次', ]; static const standard = LicensePlanGroup( name: '标准版', feats: ['单门店 · 单仓库', '2 台客户端同时使用', '1,000 张商品图片分享'], monthly: LicensePlan('monthly_standard', 299, 30), annual: LicensePlan('annual_standard', 2999, 365), ); static const pro = LicensePlanGroup( name: '高级版', feats: [ '单门店 · 多仓库', '5 台客户端同时使用', '10,000 张商品图片分享', '免费 AI 周度 / 月度商业数据分析', ], monthly: LicensePlan('monthly_pro', 599, 30), annual: LicensePlan('annual_pro', 5999, 365), ); static const groups = [standard, pro]; }