{ "id": "starter-package-purchase-tracking", "name": "starter-package-purchase-tracking", "title": "新人初始礼包购买追踪 + 动态套餐配置", "description": "在 register_bonus_claims 表添加字段追踪是否购买新人初始礼包,创建静态配置文件管理套餐,提供统一的套餐信息 API", "status": "completed", "dev_type": "fullstack", "scope": [ "backend", "apps" ], "priority": "P2", "creator": "zl-q", "assignee": "zl-q", "createdAt": "2026-04-16", "completedAt": "2026-04-16", "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 } }