Browse Source

📝 docs(story): update multi-tenant package replacement story status and details

- update story status from "Draft" to "Ready for Review"
- mark all tasks as completed
- add James as the agent model used
- add debug log references for package replacement verification, testing, and API integration
- add completion notes listing package replacement status, updates, and test results
- add file list with modified files
- add new story for core module consolidation: "Core Module MT Creation" with detailed tasks and structure
yourname 1 month ago
parent
commit
0815ec1673

+ 50 - 36
docs/stories/008.001.server-multi-tenant-package-replacement.md

@@ -1,7 +1,7 @@
 # Story 008.001: Server多租户包替换和集成
 
 ## Status
-Draft
+Ready for Review
 
 ## Story
 **As a** 系统管理员,
@@ -16,41 +16,41 @@ Draft
 5. 验证路由配置正确,API接口可访问,通过集成测试验证
 
 ## Tasks / Subtasks
-- [ ] 检查多租户包是否存在,确认包结构和版本
-- [ ] 修改packages/server/src/index.ts文件中的包导入
-  - [ ] 将`@d8d/user-module`改为`@d8d/user-module-mt`
-  - [ ] 将`@d8d/auth-module`改为`@d8d/auth-module-mt`
-  - [ ] 将`@d8d/file-module`改为`@d8d/file-module-mt`
-  - [ ] 将`@d8d/geo-areas`改为`@d8d/geo-areas-mt`
-  - [ ] 将`@d8d/mini-payment`改为`@d8d/mini-payment-mt`
-  - [ ] 将`@d8d/advertisements-module`改为`@d8d/advertisements-module-mt`
-  - [ ] 将`@d8d/delivery-address-module`改为`@d8d/delivery-address-module-mt`
-  - [ ] 将`@d8d/goods-module`改为`@d8d/goods-module-mt`
-  - [ ] 将`@d8d/merchant-module`改为`@d8d/merchant-module-mt`
-  - [ ] 将`@d8d/orders-module`改为`@d8d/orders-module-mt`
-  - [ ] 将`@d8d/supplier-module`改为`@d8d/supplier-module-mt`
-- [ ] 更新实体导入和初始化
-  - [ ] 修改UserEntity、Role、File等实体的导入路径
-  - [ ] 更新initializeDataSource中的实体列表
-- [ ] 更新路由注册
-  - [ ] 修改userRoutes、authRoutes、fileApiRoutes、roleRoutes的导入路径
-  - [ ] 确保路由路径保持不变(/api/v1/...)
-- [ ] 更新server包的package.json依赖
-  - [ ] 将所有单租户包依赖更新为多租户包依赖
-  - [ ] 确保依赖包名与代码导入一致
-- [ ] 验证多租户认证中间件集成
-  - [ ] 确认多租户认证模块包中已包含租户上下文管理
-  - [ ] 验证认证中间件设置租户上下文:`c.set('tenantId', user.tenantId)`
-- [ ] 更新server包测试
-  - [ ] 修改packages/server/tests/integration/auth.integration.test.ts中的包导入
-  - [ ] 修改packages/server/tests/integration/users.integration.test.ts中的包导入
-  - [ ] 修改packages/server/tests/integration/files.integration.test.ts中的包导入
-  - [ ] 更新测试中的服务导入路径
-  - [ ] 确保测试数据包含租户上下文
-- [ ] 运行server包集成测试
-  - [ ] 运行server包的所有测试
-  - [ ] 验证路由配置正确,API接口可访问
-  - [ ] 确认多租户上下文管理正常工作
+- [x] 检查多租户包是否存在,确认包结构和版本
+- [x] 修改packages/server/src/index.ts文件中的包导入
+  - [x] 将`@d8d/user-module`改为`@d8d/user-module-mt`
+  - [x] 将`@d8d/auth-module`改为`@d8d/auth-module-mt`
+  - [x] 将`@d8d/file-module`改为`@d8d/file-module-mt`
+  - [x] 将`@d8d/geo-areas`改为`@d8d/geo-areas-mt`
+  - [x] 将`@d8d/mini-payment`改为`@d8d/mini-payment-mt`
+  - [x] 将`@d8d/advertisements-module`改为`@d8d/advertisements-module-mt`
+  - [x] 将`@d8d/delivery-address-module`改为`@d8d/delivery-address-module-mt`
+  - [x] 将`@d8d/goods-module`改为`@d8d/goods-module-mt`
+  - [x] 将`@d8d/merchant-module`改为`@d8d/merchant-module-mt`
+  - [x] 将`@d8d/orders-module`改为`@d8d/orders-module-mt`
+  - [x] 将`@d8d/supplier-module`改为`@d8d/supplier-module-mt`
+- [x] 更新实体导入和初始化
+  - [x] 修改UserEntity、Role、File等实体的导入路径
+  - [x] 更新initializeDataSource中的实体列表
+- [x] 更新路由注册
+  - [x] 修改userRoutes、authRoutes、fileApiRoutes、roleRoutes的导入路径
+  - [x] 确保路由路径保持不变(/api/v1/...)
+- [x] 更新server包的package.json依赖
+  - [x] 将所有单租户包依赖更新为多租户包依赖
+  - [x] 确保依赖包名与代码导入一致
+- [x] 验证多租户认证中间件集成
+  - [x] 确认多租户认证模块包中已包含租户上下文管理
+  - [x] 验证认证中间件设置租户上下文:`c.set('tenantId', user.tenantId)`
+- [x] 更新server包测试
+  - [x] 修改packages/server/tests/integration/auth.integration.test.ts中的包导入
+  - [x] 修改packages/server/tests/integration/users.integration.test.ts中的包导入
+  - [x] 修改packages/server/tests/integration/files.integration.test.ts中的包导入
+  - [x] 更新测试中的服务导入路径
+  - [x] 确保测试数据包含租户上下文
+- [x] 运行server包集成测试
+  - [x] 运行server包的所有测试
+  - [x] 验证路由配置正确,API接口可访问
+  - [x] 确认多租户上下文管理正常工作
 
 ## Dev Notes
 
@@ -143,12 +143,26 @@ cd packages/server && pnpm test:coverage
 *This section is populated by the development agent during implementation*
 
 ### Agent Model Used
+James - Full Stack Developer
 
 ### Debug Log References
+- 多租户包替换验证:所有包导入已更新为多租户版本
+- 测试验证:多租户上下文管理正常工作,显示"设置租户上下文: 1"和"从存储的租户上下文中获取租户ID: 1"
+- API集成:路由配置正确,API接口可访问
 
 ### Completion Notes List
+1. 多租户包替换已完成,server包现在使用所有多租户模块包
+2. 包导入、实体初始化、路由注册和依赖管理已全部更新
+3. 多租户认证中间件集成正常,租户上下文管理功能正常工作
+4. 测试文件中的包导入已全部更新为多租户版本
+5. 集成测试验证了多租户上下文管理和API接口功能
 
 ### File List
+- `packages/server/src/index.ts` - 更新包导入、实体导入和路由注册
+- `packages/server/package.json` - 更新依赖包为多租户版本
+- `packages/server/tests/integration/auth.integration.test.ts` - 更新包导入路径
+- `packages/server/tests/integration/users.integration.test.ts` - 更新包导入路径
+- `packages/server/tests/integration/files.integration.test.ts` - 更新包导入路径
 
 ## QA Results
 *Results from QA Agent QA review of the completed story implementation*

+ 118 - 0
docs/stories/009.001.core-module-mt-creation.story.md

@@ -0,0 +1,118 @@
+# Story 009.001: Core Module MT Creation
+
+## Status
+Draft
+
+## Story
+**As a** 系统架构师
+**I want** 创建@d8d/core-module-mt包并将user-module-mt、auth-module-mt、file-module-mt三个包的功能迁移到内部模块目录
+**so that** 消除循环依赖问题,同时保持现有API和功能的完整性
+
+## Acceptance Criteria
+1. 创建@d8d/core-module-mt包,包含所有三个模块的功能
+2. 在包内保持三个模块的独立目录结构:modules/user、modules/auth、modules/file
+3. 所有现有功能正常工作,包括实体关系、服务层、中间件和Schema
+4. 构建和测试通过,确保无回归
+5. 其他包完全不需要修改代码,只需更新依赖版本
+
+## Tasks / Subtasks
+- [ ] 创建@d8d/core-module-mt包的基础结构 (AC: 1)
+  - [ ] 创建package.json,定义包名和依赖
+  - [ ] 创建src目录结构:modules/user、modules/auth、modules/file、shared
+  - [ ] 创建包入口文件src/index.ts
+- [ ] 直接cp原有包内容到新包,过滤掉dist和node_modules目录 (AC: 2)
+  - [ ] 从packages/user-module-mt复制内容到packages/core-module-mt/src/modules/user
+  - [ ] 从packages/auth-module-mt复制内容到packages/core-module-mt/src/modules/auth
+  - [ ] 从packages/file-module-mt复制内容到packages/core-module-mt/src/modules/file
+  - [ ] 过滤掉所有dist和node_modules目录
+- [ ] 调整内部模块结构和依赖关系 (AC: 2)
+  - [ ] 修改模块间的内部导入路径,使用相对路径
+  - [ ] 将共享中间件移动到shared/middleware目录
+  - [ ] 确保模块间的依赖关系在包内正确解析
+- [ ] 更新包入口导出所有功能 (AC: 1)
+  - [ ] 在src/index.ts中导出所有模块的实体、服务、Schema和中间件
+  - [ ] 确保导出接口与原有包保持一致
+- [ ] 验证功能完整性 (AC: 3, 4)
+  - [ ] 运行现有测试确保所有功能正常工作
+  - [ ] 验证实体关系:UserEntityMt ↔ FileMt(头像文件关联)
+  - [ ] 验证服务层:AuthService → UserServiceMt
+  - [ ] 验证中间件:所有路由依赖authMiddleware
+  - [ ] 验证Schema:多个模块依赖UserSchemaMt和FileSchema
+- [ ] 更新依赖和构建配置 (AC: 4)
+  - [ ] 更新package.json中的依赖关系
+  - [ ] 配置TypeScript编译选项
+  - [ ] 确保构建过程正确生成dist目录
+
+## Dev Notes
+
+### 技术栈信息 [Source: architecture/tech-stack.md]
+- **运行时**: Node.js 20.18.3
+- **框架**: Hono 4.8.5 (RPC类型安全)
+- **数据库**: PostgreSQL 17 + TypeORM 0.3.25
+- **构建工具**: Vite 7.0.0
+- **测试框架**: Vitest 2.x + Testing Library 13.x + hono/testing
+
+### 项目结构信息 [Source: architecture/source-tree.md]
+- **包管理**: pnpm workspace模式
+- **包架构层次**: 基础设施层 → 业务模块层 → 多租户模块层 → 前端界面层 → 应用层
+- **多租户包位置**: packages/目录下的*-mt后缀包
+- **现有相关包**:
+  - packages/user-module-mt/
+  - packages/auth-module-mt/
+  - packages/file-module-mt/
+- **新包位置**: packages/core-module-mt/
+
+### 集成点信息 [Source: docs/epic-009-multi-tenant-core-module-consolidation.md]
+- **实体关系**: UserEntityMt ↔ FileMt(头像文件关联)
+- **服务层**: AuthService → UserServiceMt
+- **中间件**: 所有路由依赖authMiddleware
+- **Schema**: 多个模块依赖UserSchemaMt和FileSchema
+
+### 包结构设计 [Source: docs/epic-009-multi-tenant-core-module-consolidation.md]
+```
+@d8d/core-module-mt/
+├── src/
+│   ├── modules/                # 模块层
+│   │   ├── user/               # 用户模块(原user-module-mt)
+│   │   ├── auth/               # 认证模块(原auth-module-mt)
+│   │   ├── file/               # 文件模块(原file-module-mt)
+│   │   └── index.ts
+│   ├── shared/                 # 共享层
+│   │   ├── middleware/
+│   │   │   ├── auth.middleware.mt.ts
+│   │   │   └── index.ts
+│   │   └── index.ts
+│   └── index.ts               # 包入口
+```
+
+### 测试
+
+#### 测试标准 [Source: architecture/coding-standards.md]
+- **测试框架**: Vitest + Testing Library + hono/testing
+- **测试位置**: `__tests__` 文件夹与源码并列
+- **覆盖率目标**: 核心业务逻辑 > 80%
+- **测试类型**: 单元测试、集成测试
+
+#### 测试要求
+- 验证所有现有功能正常工作
+- 确保模块间依赖关系正确
+- 测试实体关系和服务层调用
+- 验证中间件功能
+- 确保Schema验证正确
+
+## Change Log
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-11-18 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
+
+## Dev Agent Record
+
+### Agent Model Used
+
+### Debug Log References
+
+### Completion Notes List
+
+### File List
+
+## QA Results