Files
eryao/.trellis/tasks/archive/2026-04/04-16-starter-package-purchase-tracking/task.json
T

156 lines
4.2 KiB
JSON
Raw Normal View History

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