2026-04-16 16:11:09 +08:00
|
|
|
|
{
|
|
|
|
|
|
"id": "starter-package-purchase-tracking",
|
|
|
|
|
|
"name": "starter-package-purchase-tracking",
|
|
|
|
|
|
"title": "新人初始礼包购买追踪 + 动态套餐配置",
|
|
|
|
|
|
"description": "在 register_bonus_claims 表添加字段追踪是否购买新人初始礼包,创建静态配置文件管理套餐,提供统一的套餐信息 API",
|
2026-04-16 16:14:51 +08:00
|
|
|
|
"status": "completed",
|
2026-04-16 16:11:09 +08:00
|
|
|
|
"dev_type": "fullstack",
|
2026-04-16 16:14:51 +08:00
|
|
|
|
"scope": [
|
|
|
|
|
|
"backend",
|
|
|
|
|
|
"apps"
|
|
|
|
|
|
],
|
2026-04-16 16:11:09 +08:00
|
|
|
|
"priority": "P2",
|
|
|
|
|
|
"creator": "zl-q",
|
|
|
|
|
|
"assignee": "zl-q",
|
|
|
|
|
|
"createdAt": "2026-04-16",
|
2026-04-16 16:14:51 +08:00
|
|
|
|
"completedAt": "2026-04-16",
|
2026-04-16 16:11:09 +08:00
|
|
|
|
"branch": "worktree/feat-starter-package-purchase-tracking",
|
|
|
|
|
|
"base_branch": "dev",
|
|
|
|
|
|
"worktree_path": "/home/qzl/Code/eryao/.worktrees/feat-starter-package-purchase-tracking",
|
|
|
|
|
|
"current_phase": 0,
|
|
|
|
|
|
"next_action": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"phase": 1,
|
|
|
|
|
|
"action": "implement"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"phase": 2,
|
|
|
|
|
|
"action": "check"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"phase": 3,
|
|
|
|
|
|
"action": "finish"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"phase": 4,
|
|
|
|
|
|
"action": "create-pr"
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"commit": null,
|
|
|
|
|
|
"pr_url": null,
|
|
|
|
|
|
"subtasks": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "static-config",
|
|
|
|
|
|
"title": "静态配置:创建套餐配置文件(us.yaml, default.yaml)",
|
|
|
|
|
|
"status": "completed",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "config-loader",
|
|
|
|
|
|
"title": "配置加载层:创建 packages loader/schema/registry",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "db-migration",
|
|
|
|
|
|
"title": "数据库迁移:添加 has_purchased_starter_pack 字段",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "backend-model",
|
|
|
|
|
|
"title": "后端 Model 层:更新 RegisterBonusClaims",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "backend-repository",
|
|
|
|
|
|
"title": "后端 Repository 层:添加查询方法",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "backend-service",
|
|
|
|
|
|
"title": "后端 Service 层:实现套餐获取与资格检查逻辑",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "backend-schema",
|
|
|
|
|
|
"title": "后端 Schema 层:定义 PackagesResponse/PackageInfo",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "backend-router",
|
|
|
|
|
|
"title": "后端 Router 层:添加统一 GET /packages 路由",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "profile-default-country",
|
|
|
|
|
|
"title": "Profile 默认值:country 从 CN 改为 US(前后端)",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "backend-tests",
|
|
|
|
|
|
"title": "后端单元测试",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "frontend-models",
|
|
|
|
|
|
"title": "前端数据模型:PackageInfo/PackagesResult",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "frontend-api",
|
|
|
|
|
|
"title": "前端 API 调用层",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "frontend-ui",
|
|
|
|
|
|
"title": "前端 UI:CoinCenterScreen 动态渲染套餐",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "docs-protocol",
|
|
|
|
|
|
"title": "更新协议文档",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 1
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": "integration-test",
|
|
|
|
|
|
"title": "集成测试验证",
|
|
|
|
|
|
"status": "pending",
|
|
|
|
|
|
"phase": 2
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"children": [],
|
|
|
|
|
|
"parent": null,
|
|
|
|
|
|
"relatedFiles": [
|
|
|
|
|
|
"backend/src/core/config/static/packages/us.yaml",
|
|
|
|
|
|
"backend/src/core/config/static/packages/default.yaml",
|
|
|
|
|
|
"backend/src/core/config/packages/loader.py",
|
|
|
|
|
|
"backend/src/core/config/packages/schema.py",
|
|
|
|
|
|
"backend/src/core/config/packages/registry.py",
|
|
|
|
|
|
"backend/src/models/register_bonus_claims.py",
|
|
|
|
|
|
"backend/src/v1/points/repository.py",
|
|
|
|
|
|
"backend/src/v1/points/service.py",
|
|
|
|
|
|
"backend/src/v1/points/schemas.py",
|
|
|
|
|
|
"backend/src/v1/points/router.py",
|
|
|
|
|
|
"apps/lib/features/settings/data/models/profile_settings.dart",
|
|
|
|
|
|
"apps/lib/features/settings/presentation/screens/coin_center_screen.dart",
|
|
|
|
|
|
"docs/protocols/common/user-points-chat-data-protocol.md"
|
|
|
|
|
|
],
|
|
|
|
|
|
"notes": "本期不实现支付流程,仅提供套餐信息查询 API。采用 ISO 3166-1 alpha-2 国家代码。",
|
|
|
|
|
|
"meta": {
|
|
|
|
|
|
"country_code_standard": "ISO 3166-1 alpha-2",
|
|
|
|
|
|
"default_country": "US",
|
|
|
|
|
|
"packages_count": 4
|
|
|
|
|
|
}
|
2026-04-16 16:14:51 +08:00
|
|
|
|
}
|