Jelajahi Sumber

📝 docs(epic-007): 更新模块移植方案文档

- 更新模块到独立包的映射方案,为包名添加`@d8d/allin-`前缀以明确归属
- 新增目录结构决策,在项目根目录创建`allin-packages/`目录存放专属包
- 更新包结构规范,明确包名和目录的对应关系
- 更新依赖关系解决方案中的移植顺序建议,使用新的包名前缀
- 更新用户故事描述,反映新的目录结构和包命名
- 更新总结部分,包含新的命名方案和目录结构信息
yourname 3 minggu lalu
induk
melakukan
23a45eb2ec
1 mengubah file dengan 58 tambahan dan 33 penghapusan
  1. 58 33
      docs/epic-007.md

+ 58 - 33
docs/epic-007.md

@@ -100,30 +100,51 @@ salary (独立)
 
 ### 3. 模块到独立包的映射方案
 
-基于现有项目命名规范(参考`auth-module`、`file-module`等),制定以下映射方案:
-
-| 原模块名 | 独立包名 | 说明 |
-|---------|---------|------|
-| channel_info | `@d8d/channel-module` | 渠道管理模块 |
-| company | `@d8d/company-module` | 公司管理模块,依赖platform-module |
-| dict_management | `@d8d/dict-module` | 字典管理模块 |
-| disability_person | `@d8d/disability-module` | 残疾人管理模块(简化名称) |
-| order | `@d8d/order-module` | 订单管理模块 |
-| platform | `@d8d/platform-module` | 平台管理模块 |
-| salary | `@d8d/salary-module` | 薪资管理模块 |
+基于现有项目命名规范,并考虑这是Allin系统专属模块,制定以下映射方案:
+
+| 原模块名 | 独立包名 | 目录名 | 说明 |
+|---------|---------|--------|------|
+| channel_info | `@d8d/allin-channel-module` | `channel-module` | 渠道管理模块 |
+| company | `@d8d/allin-company-module` | `company-module` | 公司管理模块,依赖platform-module |
+| dict_management | `@d8d/allin-dict-module` | `dict-module` | 字典管理模块 |
+| disability_person | `@d8d/allin-disability-module` | `disability-module` | 残疾人管理模块(简化名称) |
+| order | `@d8d/allin-order-module` | `order-module` | 订单管理模块 |
+| platform | `@d8d/allin-platform-module` | `platform-module` | 平台管理模块 |
+| salary | `@d8d/allin-salary-module` | `salary-module` | 薪资管理模块 |
 
 **命名原则**:
-1. 使用`@d8d/`作为包名前缀
-2. 模块名使用单数形式 + `-module`后缀
-3. 名称简洁明了,反映模块核心功能
-4. 不使用多租户后缀`-mt`(本次移植为非多租户版本)
+1. **包名前缀**:使用`@d8d/allin-`前缀,明确表明是Allin系统专属包
+2. **目录名**:使用简洁的`{模块名}-module`格式,便于在`allin-packages`目录中管理
+3. **模块名**:使用单数形式 + `-module`后缀
+4. **名称简洁**:反映模块核心功能
+5. **非多租户**:不使用`-mt`后缀(本次移植为非多租户版本)
 
-### 4. 包结构规范
+### 4. 目录结构和包规范
 
+#### 目录结构决策
+由于这些模块是`allin_system-master`项目独有的业务模块(非通用模块),将在项目根目录创建独立目录:
+
+```
+项目根目录/
+├── allin-packages/          # Allin系统专属包目录
+│   ├── channel-module/      # 渠道管理模块
+│   ├── company-module/      # 公司管理模块
+│   ├── dict-module/         # 字典管理模块
+│   ├── disability-module/   # 残疾人管理模块
+│   ├── order-module/        # 订单管理模块
+│   ├── platform-module/     # 平台管理模块
+│   └── salary-module/       # 薪资管理模块
+├── packages/                # 现有通用包目录(保持不变)
+└── allin_system-master/     # 原始代码目录(移植源)
+```
+
+**目录命名说明**:`allin-packages`清晰表明这是Allin系统专属的包目录,与`allin_system-master`源目录对应,区别于通用的`packages`目录。
+
+#### 包结构规范
 参考现有`auth-module`结构,每个独立包应包含:
 
 ```
-packages/{module-name}/
+allin-packages/{module-name}/
 ├── package.json          # 包配置,workspace依赖管理
 ├── tsconfig.json        # TypeScript配置
 ├── vitest.config.ts     # 测试配置(如需要)
@@ -143,7 +164,8 @@ packages/{module-name}/
 1. `package.json`中设置`"type": "module"`
 2. 主入口为`src/index.ts`
 3. 使用workspace依赖:`"@d8d/core-module": "workspace:*"`
-4. 导出必要的服务和实体
+4. 包名使用`@d8d/allin-`前缀,如`@d8d/allin-channel-module`
+5. 导出必要的服务和实体
 
 ### 5. 依赖关系解决方案
 
@@ -155,32 +177,33 @@ packages/{module-name}/
 4. **移植顺序策略**:按依赖顺序移植,先移植基础模块
 
 **建议移植顺序**:
-1. `platform-module`(基础)
-2. `channel-module`、`dict-module`、`salary-module`(独立)
-3. `company-module`(依赖platform)
-4. `order-module`和`disability-module`(最后处理,解决循环依赖)
+1. `allin-platform-module`(基础)
+2. `allin-channel-module`、`allin-dict-module`、`allin-salary-module`(独立)
+3. `allin-company-module`(依赖platform)
+4. `allin-order-module`和`allin-disability-module`(最后处理,解决循环依赖)
 
 ## 故事(更新后)
 
 **注**:故事1的分析工作已完成,结果见上方"模块分析结果"部分。
 
 1. **故事2:创建基础包模板和移植工具**
+   - 创建`allin-packages`目录结构
    - 创建标准的独立包模板(参考auth-module结构)
    - 开发自动化移植脚本
-   - 配置workspace依赖管理
+   - 配置workspace依赖管理(使用`@d8d/allin-`前缀)
    - 准备TypeScript配置和构建脚本
    - 创建package.json模板
 
 2. **故事3:移植基础独立模块**
-   - 移植`platform-module`(基础依赖)
-   - 移植`channel-module`(独立模块)
-   - 移植`dict-module`(独立模块)
-   - 移植`salary-module`(独立模块)
+   - 移植`allin-platform-module`(基础依赖)
+   - 移植`allin-channel-module`(独立模块)
+   - 移植`allin-dict-module`(独立模块)
+   - 移植`allin-salary-module`(独立模块)
    - 验证基础模块功能
 
 3. **故事4:移植依赖模块和解决循环依赖**
-   - 移植`company-module`(依赖platform-module)
-   - 处理`order-module`和`disability-module`的循环依赖
+   - 移植`allin-company-module`(依赖platform-module)
+   - 处理`allin-order-module`和`allin-disability-module`的循环依赖
    - 创建共享实体或接口抽象
    - 移植两个复杂模块的核心功能
 
@@ -239,16 +262,18 @@ packages/{module-name}/
 "模块分析已完成,关键发现:
 
 1. **依赖关系分析完成**:7个模块的依赖关系已明确,发现order和disability_person模块存在循环依赖
-2. **命名方案确定**:使用@d8d前缀,-module后缀,非多租户版本
-3. **移植顺序建议**:platform → channel/dict/salary → company → order/disability
+2. **命名方案确定**:使用`@d8d/allin-`前缀,`-module`后缀,非多租户版本
+3. **目录结构**:在根目录创建`allin-packages/`目录存放专属包
+4. **移植顺序建议**:platform → channel/dict/salary → company → order/disability
 
 请基于以上分析开发详细的用户故事。关键考虑:
 
 - 这是对运行TypeScript、NestJS、PostgreSQL、Redis、MinIO的现有系统的增强
-- **只移植有实体的7个模块**,映射关系已确定
+- **只移植有实体的7个模块**,映射关系已确定(使用`@d8d/allin-`前缀)
+- **目录结构**:模块将放置在`allin-packages/`目录下
 - **循环依赖问题**:order和disability_person模块需要特殊处理
 - 集成点:模块间API调用、数据库访问、配置共享
-- 要遵循的现有模式:@d8d包命名、workspace依赖、模块化结构
+- 要遵循的现有模式:workspace依赖、模块化结构
 - 关键兼容性要求:API接口不变、数据库schema兼容、性能影响最小
 - 每个故事必须包含验证现有功能保持完整的检查