feat: 新人初始礼包购买追踪功能

- 数据库:添加 has_purchased_starter_pack 字段到 register_bonus_claims
- 后端:创建静态配置管理套餐信息,支持按国家/地区区分
- 后端:新增 GET /api/v1/points/packages API 返回可用套餐
- 后端:创建 utils/paths.py 统一路径管理
- 前端:动态获取套餐信息,移除硬编码
- 前端:添加 ProductCode 枚举约束,前后端类型安全
- 配置:Profile 默认国家改为 US(ISO 3166-1 alpha-2)
- 文档:更新协议文档说明新 API 和字段
This commit is contained in:
qzl
2026-04-16 16:11:09 +08:00
parent 443c0c80ae
commit ff40ff9dd8
38 changed files with 1434 additions and 2517 deletions
+1
View File
@@ -190,6 +190,7 @@
},
"settingsCoinCenterDescription": "",
"settingsCoinRechargeSection": "Recharge Packages",
"settingsCoinPackStarter": "New User Pack",
"settingsCoinPackBasic": "Starter Pack",
"settingsCoinPackPopular": "Popular Pack",
"settingsCoinPackPremium": "Premium Pack",
+6
View File
@@ -939,6 +939,12 @@ abstract class AppLocalizations {
/// **'充值套餐'**
String get settingsCoinRechargeSection;
/// No description provided for @settingsCoinPackStarter.
///
/// In zh, this message translates to:
/// **'新人专享包'**
String get settingsCoinPackStarter;
/// No description provided for @settingsCoinPackBasic.
///
/// In zh, this message translates to:
+3
View File
@@ -469,6 +469,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get settingsCoinRechargeSection => 'Recharge Packages';
@override
String get settingsCoinPackStarter => 'New User Pack';
@override
String get settingsCoinPackBasic => 'Starter Pack';
+6
View File
@@ -454,6 +454,9 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get settingsCoinRechargeSection => '充值套餐';
@override
String get settingsCoinPackStarter => '新人专享包';
@override
String get settingsCoinPackBasic => '入门补充包';
@@ -1460,6 +1463,9 @@ class AppLocalizationsZhHant extends AppLocalizationsZh {
@override
String get settingsCoinRechargeSection => '儲值套餐';
@override
String get settingsCoinPackStarter => '新人專享包';
@override
String get settingsCoinPackBasic => '入門補充包';
+1
View File
@@ -190,6 +190,7 @@
},
"settingsCoinCenterDescription": "",
"settingsCoinRechargeSection": "充值套餐",
"settingsCoinPackStarter": "新人专享包",
"settingsCoinPackBasic": "入门补充包",
"settingsCoinPackPopular": "常用加量包",
"settingsCoinPackPremium": "高频进阶包",
+1
View File
@@ -123,6 +123,7 @@
},
"settingsCoinCenterDescription": "",
"settingsCoinRechargeSection": "儲值套餐",
"settingsCoinPackStarter": "新人專享包",
"settingsCoinPackBasic": "入門補充包",
"settingsCoinPackPopular": "常用加量包",
"settingsCoinPackPremium": "高頻進階包",