浏览代码

📝 docs(stories): 更新故事004.001任务标注和测试策略

- 为所有任务添加具体参考文件路径标注
- 移除实体测试任务,保留服务测试和API集成测试
- 更新测试任务为"编写测试",包含具体参考文件
- 参考现有包结构确保实现一致性

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 1 月之前
父节点
当前提交
abb73ad74f
共有 1 个文件被更改,包括 18 次插入19 次删除
  1. 18 19
      docs/stories/004.001.credit-balance-module-mt.story.md

+ 18 - 19
docs/stories/004.001.credit-balance-module-mt.story.md

@@ -18,34 +18,34 @@ Draft
 
 ## Tasks / Subtasks
 - [ ] **创建多租户信用额度模块包结构** (AC: 1, 2, 3, 4, 6)
-  - [ ] 创建包目录:`packages/credit-balance-module-mt/`
-  - [ ] 配置package.json,包名:`@d8d/credit-balance-module-mt`
-  - [ ] 配置TypeScript和Vitest配置文件
-  - [ ] 创建核心模块结构:`src/entities/`, `src/services/`, `src/schemas/`, `src/routes/`, `src/types/`
-  - [ ] 创建测试目录结构:`tests/unit/`, `tests/integration/`
+  - [ ] 创建包目录:`packages/credit-balance-module-mt/` (参考:`packages/advertisements-module-mt/`)
+  - [ ] 配置package.json,包名:`@d8d/credit-balance-module-mt` (参考:`packages/advertisements-module-mt/package.json`)
+  - [ ] 配置TypeScript和Vitest配置文件 (参考:`packages/advertisements-module-mt/tsconfig.json`, `packages/advertisements-module-mt/vitest.config.ts`)
+  - [ ] 创建核心模块结构:`src/entities/`, `src/services/`, `src/schemas/`, `src/routes/`, `src/types/` (参考:`packages/advertisements-module-mt/src/`)
+  - [ ] 创建测试目录结构:`tests/unit/`, `tests/integration/` (参考:`packages/advertisements-module-mt/tests/`)
 
 - [ ] **实现信用额度实体** (AC: 1)
-  - [ ] 创建`CreditBalanceMt`实体类,对应`credit_balance_mt`表
+  - [ ] 创建`CreditBalanceMt`实体类,对应`credit_balance_mt`表 (参考:`packages/advertisements-module-mt/src/entities/advertisement.entity.ts`)
   - [ ] 添加字段:`tenant_id`, `user_id`, `total_limit`, `used_amount`, `available_amount`, `is_enabled`
   - [ ] 添加唯一约束:`uk_tenant_user (tenant_id, user_id)`
   - [ ] 添加索引:`idx_tenant_id`, `idx_user_id`
-  - [ ] 使用TypeORM装饰器定义实体关系
+  - [ ] 使用TypeORM装饰器定义实体关系 (参考:`packages/advertisements-module-mt/src/entities/advertisement.entity.ts`)
 
 - [ ] **实现额度变更记录实体** (AC: 2)
-  - [ ] 创建`CreditBalanceLogMt`实体类,对应`credit_balance_log_mt`表
+  - [ ] 创建`CreditBalanceLogMt`实体类,对应`credit_balance_log_mt`表 (参考:`packages/advertisements-module-mt/src/entities/advertisement-type.entity.ts`)
   - [ ] 添加字段:`tenant_id`, `user_id`, `change_type`, `change_amount`, `before_total`, `after_total`, `before_used`, `after_used`, `reference_id`, `remark`, `operator_id`
   - [ ] 添加索引:`idx_tenant_user`, `idx_reference`, `idx_created`
   - [ ] 定义变更类型枚举:`SET_LIMIT`, `PAYMENT`, `CHECKOUT`, `CANCEL_ORDER`, `REFUND`, `ADJUST`
 
 - [ ] **实现额度管理服务** (AC: 3)
-  - [ ] 创建`CreditBalanceService`服务类
+  - [ ] 创建`CreditBalanceService`服务类 (参考:`packages/advertisements-module-mt/src/services/advertisement.service.ts`)
   - [ ] 实现方法:`setLimit()`, `adjustLimit()`, `deductAmount()`, `restoreAmount()`, `getBalance()`, `getBalanceByUserId()`
   - [ ] 实现额度恢复方法:`restoreBalanceForCancelOrder()`, `restoreBalanceForRefund()`
   - [ ] 添加事务处理确保数据一致性
   - [ ] 添加额度检查和验证逻辑
 
 - [ ] **实现API路由** (AC: 4)
-  - [ ] 创建路由文件:`src/routes/index.mt.ts`
+  - [ ] 创建路由文件:`src/routes/index.mt.ts` (参考:`packages/advertisements-module-mt/src/routes/index.ts`)
   - [ ] 实现API端点:
     - [ ] `GET /api/credit-balance/{userId}` - 查询用户额度
     - [ ] `PUT /api/credit-balance/{userId}` - 设置用户额度
@@ -53,22 +53,21 @@ Draft
     - [ ] `GET /api/credit-balance/{userId}/logs` - 查询额度变更记录
     - [ ] `POST /api/credit-balance/payment` - 额度支付
     - [ ] `POST /api/credit-balance/checkout` - 结账恢复额度
-  - [ ] 添加数据验证Schema
+  - [ ] 添加数据验证Schema (参考:`packages/advertisements-module-mt/src/schemas/`)
   - [ ] 添加权限控制和认证中间件
 
 
-- [ ] **编写单元测试** (AC: 6)
-  - [ ] 创建实体测试:验证实体定义和关系
-  - [ ] 创建服务测试:测试额度管理逻辑
-  - [ ] 创建API测试:测试端点功能和验证
+- [ ] **编写测试** (AC: 6)
+  - [ ] **服务测试**:测试额度管理逻辑 (参考:`packages/file-module/tests/unit/file.service.test.ts`)
+  - [ ] **API集成测试**:测试端点功能和验证 (参考:`packages/advertisements-module-mt/tests/integration/advertisements.integration.test.ts`)
   - [ ] 添加边界条件测试:额度不足、重复操作等场景
   - [ ] 确保测试覆盖率 ≥ 80%
 
 - [ ] **配置包依赖和导出** (AC: 3, 4)
-  - [ ] 配置package.json依赖关系(TypeORM、Hono等)
-  - [ ] 创建主入口文件:`src/index.mt.ts` 导出所有模块接口
-  - [ ] 配置TypeScript编译选项
-  - [ ] 配置Vitest测试环境
+  - [ ] 配置package.json依赖关系(TypeORM、Hono等) (参考:`packages/advertisements-module-mt/package.json`)
+  - [ ] 创建主入口文件:`src/index.mt.ts` 导出所有模块接口 (参考:`packages/advertisements-module-mt/src/index.ts`)
+  - [ ] 配置TypeScript编译选项 (参考:`packages/advertisements-module-mt/tsconfig.json`)
+  - [ ] 配置Vitest测试环境 (参考:`packages/advertisements-module-mt/vitest.config.ts`)
   - [ ] 确保包可以正确导入和使用
 
 ## Dev Notes