Просмотр исходного кода

📝 docs(story-007.001): 更新任务中的文件路径标注

- 在Tasks/Subtasks部分添加具体的参考文件路径
- 在Dev Notes中添加源文件和目标文件对照表
- 包括实体、服务、路由、Schema、测试等所有文件路径
- 添加测试任务中的具体工具文件引用

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 3 недель назад
Родитель
Сommit
475200af5b
1 измененных файлов с 43 добавлено и 6 удалено
  1. 43 6
      docs/stories/007.001.transplant-channel-management-module.story.md

+ 43 - 6
docs/stories/007.001.transplant-channel-management-module.story.md

@@ -22,47 +22,71 @@ Draft
 - [ ] 创建`allin-packages/channel-module`目录结构 (AC: 1)
 - [ ] 创建`allin-packages/channel-module`目录结构 (AC: 1)
   - [ ] 创建`allin-packages/channel-module/`目录
   - [ ] 创建`allin-packages/channel-module/`目录
   - [ ] 创建`package.json`文件,配置包名`@d8d/allin-channel-module`和workspace依赖
   - [ ] 创建`package.json`文件,配置包名`@d8d/allin-channel-module`和workspace依赖
+    - **参考文件**: `packages/advertisements-module/package.json`
+    - **修改点**: 包名改为`@d8d/allin-channel-module`,依赖调整
   - [ ] 创建`tsconfig.json`文件,配置TypeScript编译选项
   - [ ] 创建`tsconfig.json`文件,配置TypeScript编译选项
+    - **参考文件**: `packages/advertisements-module/tsconfig.json`
   - [ ] 创建`vitest.config.ts`文件,配置测试环境
   - [ ] 创建`vitest.config.ts`文件,配置测试环境
+    - **参考文件**: `packages/advertisements-module/vitest.config.ts`
   - [ ] 创建`src/`目录结构:`entities/`, `services/`, `routes/`, `schemas/`, `types/`
   - [ ] 创建`src/`目录结构:`entities/`, `services/`, `routes/`, `schemas/`, `types/`
+    - **参考结构**: `packages/advertisements-module/src/`目录结构
 - [ ] 完成实体转换:`Channel`实体从下划线命名转换为驼峰命名 (AC: 2)
 - [ ] 完成实体转换:`Channel`实体从下划线命名转换为驼峰命名 (AC: 2)
   - [ ] 分析源实体`allin_system-master/server/src/channel_info/channel.entity.ts`
   - [ ] 分析源实体`allin_system-master/server/src/channel_info/channel.entity.ts`
+    - **源文件**: `allin_system-master/server/src/channel_info/channel.entity.ts`
   - [ ] 创建转换后的实体文件`src/entities/channel.entity.ts`
   - [ ] 创建转换后的实体文件`src/entities/channel.entity.ts`
+    - **参考文件**: `packages/advertisements-module/src/entities/advertisement.entity.ts`
+    - **转换要点**: 下划线命名 → 驼峰命名,添加详细TypeORM配置
   - [ ] 将下划线字段名转换为驼峰命名:`channel_id` → `channelId`, `channel_name` → `channelName`等
   - [ ] 将下划线字段名转换为驼峰命名:`channel_id` → `channelId`, `channel_name` → `channelName`等
   - [ ] 添加详细的TypeORM装饰器配置:`@Column({ name: 'channel_name', type: 'varchar', length: 100 })`
   - [ ] 添加详细的TypeORM装饰器配置:`@Column({ name: 'channel_name', type: 'varchar', length: 100 })`
   - [ ] 保持数据库表名不变:`@Entity('channel_info')`
   - [ ] 保持数据库表名不变:`@Entity('channel_info')`
   - [ ] 添加必要的索引和约束配置
   - [ ] 添加必要的索引和约束配置
 - [ ] 完成服务层转换:从NestJS自定义Service转换为GenericCrudService继承 (AC: 3)
 - [ ] 完成服务层转换:从NestJS自定义Service转换为GenericCrudService继承 (AC: 3)
   - [ ] 分析源服务`allin_system-master/server/src/channel_info/channel.service.ts`
   - [ ] 分析源服务`allin_system-master/server/src/channel_info/channel.service.ts`
+    - **源文件**: `allin_system-master/server/src/channel_info/channel.service.ts`
   - [ ] 创建转换后的服务文件`src/services/channel.service.ts`
   - [ ] 创建转换后的服务文件`src/services/channel.service.ts`
+    - **参考文件**: `packages/advertisements-module/src/services/advertisement.service.ts`
+    - **架构**: 继承`GenericCrudService<Channel>`
   - [ ] 继承`GenericCrudService<Channel>`,配置搜索字段
   - [ ] 继承`GenericCrudService<Channel>`,配置搜索字段
+    - **参考**: `packages/shared-crud/src/services/generic-crud.service.ts`
   - [ ] 转换自定义业务方法:`createChannel`, `deleteChannel`, `updateChannel`, `searchByName`
   - [ ] 转换自定义业务方法:`createChannel`, `deleteChannel`, `updateChannel`, `searchByName`
+    - **业务逻辑**: 保持源服务中的重复检查、分页查询等逻辑
   - [ ] 保持原有业务逻辑,适配新的服务架构
   - [ ] 保持原有业务逻辑,适配新的服务架构
   - [ ] 添加错误处理和日志记录
   - [ ] 添加错误处理和日志记录
 - [ ] 完成路由层转换:从NestJS控制器转换为Hono路由 (AC: 4)
 - [ ] 完成路由层转换:从NestJS控制器转换为Hono路由 (AC: 4)
   - [ ] 分析源控制器`allin_system-master/server/src/channel_info/channel.controller.ts`
   - [ ] 分析源控制器`allin_system-master/server/src/channel_info/channel.controller.ts`
+    - **源文件**: `allin_system-master/server/src/channel_info/channel.controller.ts`
   - [ ] 创建转换后的路由文件`src/routes/channel.routes.ts`
   - [ ] 创建转换后的路由文件`src/routes/channel.routes.ts`
+    - **参考文件**: `packages/advertisements-module/src/routes/advertisements.ts`
+    - **架构**: 使用`OpenAPIHono`创建路由
   - [ ] 使用`OpenAPIHono`创建路由实例
   - [ ] 使用`OpenAPIHono`创建路由实例
   - [ ] 转换所有端点:`createChannel`, `deleteChannel`, `updateChannel`, `getAllChannels`, `searchChannels`, `getChannel`
   - [ ] 转换所有端点:`createChannel`, `deleteChannel`, `updateChannel`, `getAllChannels`, `searchChannels`, `getChannel`
+    - **端点映射**: 保持相同的功能,适配Hono路由语法
   - [ ] 添加认证中间件集成
   - [ ] 添加认证中间件集成
+    - **参考**: `packages/auth-module/src/middleware/auth.middleware.ts`
   - [ ] 配置OpenAPI文档和参数验证
   - [ ] 配置OpenAPI文档和参数验证
 - [ ] 完成验证系统转换:从class-validator DTO转换为Zod Schema (AC: 5)
 - [ ] 完成验证系统转换:从class-validator DTO转换为Zod Schema (AC: 5)
   - [ ] 分析源DTO`allin_system-master/server/src/channel_info/channel.dto.ts`
   - [ ] 分析源DTO`allin_system-master/server/src/channel_info/channel.dto.ts`
+    - **源文件**: `allin_system-master/server/src/channel_info/channel.dto.ts`
   - [ ] 创建转换后的Schema文件`src/schemas/channel.schema.ts`
   - [ ] 创建转换后的Schema文件`src/schemas/channel.schema.ts`
+    - **参考文件**: `packages/advertisements-module/src/schemas/advertisement.schema.ts`
   - [ ] 使用`z.object()`定义`CreateChannelSchema`, `UpdateChannelSchema`, `DeleteChannelSchema`
   - [ ] 使用`z.object()`定义`CreateChannelSchema`, `UpdateChannelSchema`, `DeleteChannelSchema`
   - [ ] 添加详细的验证规则:字符串长度、必填字段、可选字段
   - [ ] 添加详细的验证规则:字符串长度、必填字段、可选字段
   - [ ] 创建对应的TypeScript类型定义
   - [ ] 创建对应的TypeScript类型定义
 - [ ] 配置package.json:使用`@d8d/allin-channel-module`包名,workspace依赖 (AC: 6)
 - [ ] 配置package.json:使用`@d8d/allin-channel-module`包名,workspace依赖 (AC: 6)
   - [ ] 配置`package.json`中的`name`字段为`@d8d/allin-channel-module`
   - [ ] 配置`package.json`中的`name`字段为`@d8d/allin-channel-module`
+    - **参考文件**: `packages/advertisements-module/package.json`
   - [ ] 设置`type: "module"`和主入口`src/index.ts`
   - [ ] 设置`type: "module"`和主入口`src/index.ts`
   - [ ] 添加workspace依赖:`@d8d/core-module`, `@d8d/shared-crud`, `@d8d/shared-utils`
   - [ ] 添加workspace依赖:`@d8d/core-module`, `@d8d/shared-crud`, `@d8d/shared-utils`
   - [ ] 添加外部依赖:`@hono/zod-openapi`, `typeorm`, `zod`
   - [ ] 添加外部依赖:`@hono/zod-openapi`, `typeorm`, `zod`
   - [ ] 配置导出路径:`services`, `schemas`, `routes`, `entities`
   - [ ] 配置导出路径:`services`, `schemas`, `routes`, `entities`
 - [ ] 编写API集成测试:覆盖所有路由端点,验证CRUD操作 (AC: 7)
 - [ ] 编写API集成测试:覆盖所有路由端点,验证CRUD操作 (AC: 7)
   - [ ] 创建测试文件`tests/integration/channel.integration.test.ts`
   - [ ] 创建测试文件`tests/integration/channel.integration.test.ts`
+    - **参考文件**: `packages/advertisements-module/tests/integration/advertisements.integration.test.ts`
   - [ ] 参考`advertisements-module`的集成测试模式
   - [ ] 参考`advertisements-module`的集成测试模式
+    - **测试模式**: 使用`testClient`, `setupIntegrationDatabaseHooksWithEntities`
   - [ ] 使用`testClient`创建测试客户端
   - [ ] 使用`testClient`创建测试客户端
   - [ ] 使用`setupIntegrationDatabaseHooksWithEntities`设置测试数据库
   - [ ] 使用`setupIntegrationDatabaseHooksWithEntities`设置测试数据库
+    - **工具**: `@d8d/shared-test-util`中的测试基础设施
   - [ ] 编写测试用例覆盖所有端点:创建、查询、更新、删除、搜索
   - [ ] 编写测试用例覆盖所有端点:创建、查询、更新、删除、搜索
   - [ ] 添加认证测试、数据验证测试、错误处理测试
   - [ ] 添加认证测试、数据验证测试、错误处理测试
   - [ ] 包含边界条件和异常场景测试
   - [ ] 包含边界条件和异常场景测试
@@ -71,6 +95,7 @@ Draft
   - [ ] 运行`pnpm test`确保所有测试通过
   - [ ] 运行`pnpm test`确保所有测试通过
   - [ ] 运行`pnpm test:integration`验证集成测试
   - [ ] 运行`pnpm test:integration`验证集成测试
   - [ ] 检查测试覆盖率是否满足要求
   - [ ] 检查测试覆盖率是否满足要求
+    - **标准**: 集成测试 ≥ 60% [Source: architecture/testing-strategy.md#测试覆盖率标准]
   - [ ] 验证模块可以正确导入和使用
   - [ ] 验证模块可以正确导入和使用
 
 
 ## Dev Notes
 ## Dev Notes
@@ -123,12 +148,24 @@ Draft
 
 
 ### 文件位置
 ### 文件位置
 - **包目录**:`allin-packages/channel-module/` (根据史诗007的目录结构决策)
 - **包目录**:`allin-packages/channel-module/` (根据史诗007的目录结构决策)
-- **实体文件**:`src/entities/channel.entity.ts`
-- **服务文件**:`src/services/channel.service.ts`
-- **路由文件**:`src/routes/channel.routes.ts`
-- **Schema文件**:`src/schemas/channel.schema.ts`
-- **测试文件**:`tests/integration/channel.integration.test.ts`
-- **包配置**:`package.json`, `tsconfig.json`, `vitest.config.ts`
+- **源文件位置**:
+  - **实体源文件**: `allin_system-master/server/src/channel_info/channel.entity.ts`
+  - **服务源文件**: `allin_system-master/server/src/channel_info/channel.service.ts`
+  - **控制器源文件**: `allin_system-master/server/src/channel_info/channel.controller.ts`
+  - **DTO源文件**: `allin_system-master/server/src/channel_info/channel.dto.ts`
+- **目标文件位置**:
+  - **实体文件**: `src/entities/channel.entity.ts`
+    - **参考文件**: `packages/advertisements-module/src/entities/advertisement.entity.ts`
+  - **服务文件**: `src/services/channel.service.ts`
+    - **参考文件**: `packages/advertisements-module/src/services/advertisement.service.ts`
+  - **路由文件**: `src/routes/channel.routes.ts`
+    - **参考文件**: `packages/advertisements-module/src/routes/advertisements.ts`
+  - **Schema文件**: `src/schemas/channel.schema.ts`
+    - **参考文件**: `packages/advertisements-module/src/schemas/advertisement.schema.ts`
+  - **测试文件**: `tests/integration/channel.integration.test.ts`
+    - **参考文件**: `packages/advertisements-module/tests/integration/advertisements.integration.test.ts`
+  - **包配置**: `package.json`, `tsconfig.json`, `vitest.config.ts`
+    - **参考文件**: `packages/advertisements-module/`中的对应配置文件
 
 
 ### 测试要求
 ### 测试要求
 - **测试框架**:Vitest [Source: architecture/testing-strategy.md#单元测试]
 - **测试框架**:Vitest [Source: architecture/testing-strategy.md#单元测试]