Draft
As a 小程序开发者, I want 将配送地址管理模块从 packages/server/src 拆分到主项目的 packages 目录下作为独立 package, so that 项目可以按需引入配送地址管理功能,保持模块独立性和向后兼容性
@d8d/delivery-address-module package,包含完整的配送地址管理功能[ ] Task 1: 创建 delivery-address-module package 基础结构 (AC: 1)
[ ] Task 2: 迁移配送地址实体和类型定义 (AC: 2, 4, 8)
[ ] Task 3: 迁移配送地址服务 (AC: 2, 3, 8)
[x] Task 4: 创建配送地址路由 (AC: 3, 4)
[x] Task 5: 创建当前用户权限API路由文件 (AC: 3, 4)
[x] Task 6: 创建测试套件 (AC: 7, 8)
[ ] Task 7: 集成到现有系统 (AC: 5, 6, 8)
[ ] Task 8: 验证和文档 (AC: 4, 6)
packages/delivery-address-module/ [Source: docs/architecture/source-tree.md#L207-L210]findByUser(userId) - 获取用户地址列表 [Source: packages/server/src/modules/delivery-address/delivery-address.service.ts#L15-L21]setDefault(id, userId) - 设置默认地址 [Source: packages/server/src/modules/delivery-address/delivery-address.service.ts#L29-L45]findDefaultByUser(userId) - 获取用户默认地址 [Source: packages/server/src/modules/delivery-address/delivery-address.service.ts#L52-L57]receiver_province → 关联 AreaEntity.level = PROVINCEreceiver_city → 关联 AreaEntity.level = CITYreceiver_district → 关联 AreaEntity.level = DISTRICTreceiver_town → 保留现有逻辑,可考虑扩展 AreaEntity.level = TOWN(4)@d8d/shared-types - 基础类型定义 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L269-L276]@d8d/shared-utils - 工具函数 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L280-L291]@d8d/shared-crud - CRUD基础设施 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L266-L278]@d8d/user-module - 用户管理 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L321-L334]@d8d/auth-module - 认证管理 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L337-L350]@d8d/geo-areas - 省市区管理 [Source: packages/geo-areas/package.json#L1-L71]@d8d/shared-test-util [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L294-L306]packages/delivery-address-module/tests/ [Source: docs/architecture/testing-strategy.md#L39-L42]packages/delivery-address-module/src/routes/user-routes.ts - 仅限当前用户使用 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]packages/delivery-address-module/src/routes/admin-routes.ts - 管理员使用的完整权限路由 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]packages/delivery-address-module/src/schemas/user-delivery-address.schema.ts - 移除userId字段,自动使用当前登录用户IDpackages/delivery-address-module/src/schemas/admin-delivery-address.schema.ts - 保留userId字段,允许管理员指定用户dataPermission 配置 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L22-L25]userIdField: 'userId' 确保用户只能操作自己的数据 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L26-L33]packages/delivery-address-module/tests/ [Source: docs/architecture/testing-strategy.md#L39-L42]tests/unit/**/*.test.ts [Source: docs/architecture/testing-strategy.md#L39-L42]tests/integration/**/*.test.ts [Source: docs/architecture/testing-strategy.md#L47-L56]| Date | Version | Description | Author |
|---|---|---|---|
| 2025-11-11 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
| 2025-11-11 | 1.1 | 更新省市区关联,集成 @d8d/geo-areas 包 | Bob (Scrum Master) |
| 2025-11-11 | 1.2 | 添加当前用户权限API路由文件任务,支持admin/user分离路由和schema | Bob (Scrum Master) |
| 2025-11-11 | 1.3 | 完成测试套件创建,修复路由和地区验证问题 | Claude Code |
此部分由开发代理在实现过程中填写
此部分由QA代理在质量审查后填写