Parcourir la source

📝 docs(prd): 重构史诗011并新增史诗012文档

- 将史诗011中的故事011-00(API补充)提取为独立的史诗012文档
- 更新史诗011文档,明确依赖关系,所有API补充需求指向史诗012
- 调整史诗011的故事结构,从4个故事精简为3个故事,移除重复的API开发任务
- 在史诗011中更新故事背景,强调对史诗012的依赖
- 更新史诗011的完成定义、依赖关系和测试策略,反映新的依赖结构
- 新增史诗012文档,详细定义API补充与数据库扩展的7个故事
- 在史诗012中明确API路径约定,使用 `api/v1/yongren` 前缀
- 为史诗012定义完整的兼容性要求、风险缓解措施和测试策略
yourname il y a 1 semaine
Parent
commit
12ad658a73

+ 14 - 71
docs/prd/epic-011-employer-mini-program-implementation.md

@@ -21,7 +21,8 @@
 
 **集成点:**
 - 需要将史诗7,8,9,10移植的allin系统模块API客户端集成到mini项目
-- 基于已有RPC客户端模式扩展新的API客户端
+- **依赖史诗012(API补充与数据库扩展)**提供完整的用人方小程序API支持
+- 基于已有RPC客户端模式扩展新的API客户端,使用`api/v1/yongren`路径前缀
 - 复用史诗008移植的`@d8d/allin-*`系列UI组件包
 - 遵循mini项目现有的页面结构和路由配置
 
@@ -58,76 +59,13 @@
 
 ## 故事列表
 
-### 故事011-00:补充缺失的API接口
-**背景:** 经过数据库结构分析和API验证,现有allin系统移植模块的API不足以完全支持用人方小程序的所有功能需求,需要基于实际数据库表结构补充关键API接口。
-
-**数据库分析发现:**
-- **企业用户认证缺失**:`users2`表只有admin用户,缺乏企业用户与`employer_company`表的关联
-- **视频管理基础存在**:`order_person_asset`表已支持文件关联,但`asset_type`枚举需要扩展以支持工资视频、个税视频、打卡视频、工作视频等类型
-- **数据统计需要实时计算**:无专门统计表,需要基于`disabled_person`、`employment_order`、`order_person`等表实时计算
-- **年龄统计字段缺失**:`disabled_person`表只有`age`字段,缺乏`birth_date`字段用于准确年龄统计
-- **个人征信信息存储**:通过`disabled_bank_card.file_id`关联`files`表存储个人征信截图
-- **企业统计可基于现有表**:`employer_company`、`employment_order`、`order_person`表已包含必要关联关系
-
-**任务列表:**
-1. **数据库schema扩展**:
-   - 在`disabled_person`表添加`birth_date`字段(DATE类型),用于准确年龄统计
-   - 扩展`order_person_asset`表的`asset_type`枚举,新增视频类型:`salary_video`(工资视频)、`tax_video`(个税视频)、`checkin_video`(打卡视频)、`work_video`(工作视频)
-   - 在`users2`表添加`company_id`字段(外键引用`employer_company.company_id`),建立企业用户关联
-
-2. **企业用户认证API**:扩展auth-module,支持企业用户手机号密码登录(基于users2表+company_id关联)、退出登录、获取企业用户信息(包含关联的企业信息)
-
-3. **企业统计API**:扩展company-module,基于`employer_company`、`employment_order`、`order_person`表实时计算:
-   - 企业概览统计:在职人员数、进行中订单数、已完成订单数、累计订单数
-   - 企业维度人才统计:分配人才列表、人才状态分布
-
-4. **人才扩展API**:扩展disability-module,提供聚合查询接口:
-   - 工作历史查询:基于`order_person`表查询个人的历史工作记录(关联`employment_order`表)
-   - 薪资历史查询:基于`order_person.salary_detail`字段和`order`表查询历史薪资记录
-   - 个人征信信息查询:基于`disabled_bank_card.file_id`关联`files`表获取征信截图信息
-   - 视频关联查询:基于`order_person_asset`表查询关联的视频文件(按扩展的asset_type分类)
-
-5. **订单统计API**:扩展order-module,提供企业维度统计:
-   - 打卡数据统计:基于`order_person_asset`表(asset_type为`checkin_video`)统计打卡视频数量
-   - 视频统计:按视频类型(工资、个税、打卡、工作)分类统计
-   - 企业维度订单查询:支持按企业ID过滤订单列表,包含订单状态、人员关联等详细信息
-
-6. **数据统计API**:创建统计模块或扩展现有模块,基于实时计算提供:
-   - 残疾类型分布:基于`disabled_person.disability_type`统计
-   - 性别分布:基于`disabled_person.gender`统计
-   - 年龄分布:基于新增的`birth_date`字段计算年龄分组(18-25、26-35、36-45、46+)
-   - 户籍分布:基于`disabled_person.household_province`和`household_city`统计
-   - 在职状态统计:基于`disabled_person.job_status`统计
-   - 薪资分布:基于`order_person.salary_detail`统计薪资范围分布
-
-7. **视频管理API**:扩展file-module或创建视频管理模块:
-   - 视频分类管理:支持按扩展的asset_type枚举分类查询
-   - 企业维度视频查询:基于企业ID查询关联的所有视频(通过`employment_order`→`order_person`→`order_person_asset`关联链)
-   - 个人维度视频查询:基于人员ID查询关联的视频
-   - 批量下载功能:支持按企业或个人维度批量下载视频文件
-
-8. **系统设置API**:添加企业用户专属的设置接口:
-   - 账号信息管理:修改手机号、密码等
-   - 安全设置:登录设备管理、登录日志
-   - 消息通知设置:订单状态通知、人才分配通知等
-
-9. **API文档与测试**:为所有新增API编写OpenAPI文档、TypeScript类型定义和单元测试
-
-**验收标准:**
-- [ ] 数据库schema扩展完成:`disabled_person`表添加`birth_date`字段,`order_person_asset`表扩展`asset_type`枚举,`users2`表添加`company_id`字段
-- [ ] 企业用户可成功登录和获取企业信息(包含关联的企业详情)
-- [ ] 企业概览统计接口返回正确的在职人员数、进行中订单数、已完成订单数、累计订单数
-- [ ] 人才详情页可查询到工作历史、薪资历史、个人征信信息、关联视频列表
-- [ ] 订单管理页可获取打卡数据统计和按类型分类的视频统计
-- [ ] 数据统计页所有图表数据可通过API正确获取(残疾类型、性别、年龄、户籍、在职状态、薪资分布)
-- [ ] 视频管理页支持按企业/个人维度查询,支持按视频类型筛选和批量下载
-- [ ] 系统设置功能完整,账号信息、安全设置、消息通知均可管理
-- [ ] 所有新增API通过单元测试,OpenAPI文档和TypeScript类型定义完整
 
 ### 故事011-01:API客户端集成与基础框架搭建
+**背景:** 依赖史诗012完成API补充后,需要将史诗7,8,9,10移植的API模块及史诗012补充的API集成到mini项目的RPC客户端中。
+
 **任务列表:**
-1. 分析史诗7,8,9,10移植的API模块及故事011-00补充的API,确定需要集成的RPC客户端
-2. 扩展`src/api.ts`,新增allin系统模块的RPC客户端,包括补充的API接口
+1. 分析史诗7,8,9,10移植的API模块及史诗012补充的API,确定需要集成的RPC客户端
+2. 扩展`src/api.ts`,新增allin系统模块的RPC客户端,包括史诗012补充的API接口
 3. 创建用人方小程序的基础布局组件(底部导航、状态栏等)
 4. 实现登录页面功能,与企业用户认证系统集成
 5. 配置用人方小程序的路由结构
@@ -141,11 +79,13 @@
 - [ ] 现有mini项目功能不受影响
 
 ### 故事011-02:核心管理页面实现(人才与订单)
+**背景:** 依赖史诗012提供的企业统计API、人才扩展API、订单统计API,实现人才和订单的核心管理功能。
+
 **任务列表:**
 1. 实现首页/看板页面,展示企业概览数据、在职人员统计、分配人才列表
 2. 实现人才列表页,支持按姓名、残疾证号搜索,按状态、残疾类型筛选
 3. 实现人才详情页,展示基本信息、工作信息、薪资信息、历史工作内容、个人征信、视频管理
-4. 集成人才相关的API接口(disability_person、order等模块及补充API)
+4. 集成人才相关的API接口(disability_person、order等模块及史诗012补充API)
 5. 实现薪资信息展示和历史薪资记录查看功能
 6. 添加个人征信信息展示和文件下载功能
 
@@ -158,6 +98,8 @@
 - [ ] API调用错误处理完善
 
 ### 故事011-03:数据统计与系统管理功能
+**背景:** 依赖史诗012提供的数据统计API、订单统计API、视频管理API和系统设置API,实现数据可视化和管理功能。
+
 **任务列表:**
 1. 实现数据统计页,包含残疾类型分布、性别分布、年龄分布、户籍省份分布等图表
 2. 实现订单管理页,展示订单列表、状态管理、打卡数据统计、视频统计
@@ -214,7 +156,7 @@
 
 ## 完成定义
 
-- [ ] 所有4个故事完成,验收标准全部满足
+- [ ] 所有3个故事完成,验收标准全部满足
 - [ ] 8个页面功能完整,符合原型设计要求
 - [ ] API集成测试通过,包括正常流程和异常情况测试
 - [ ] 现有功能回归测试通过,确保无功能退化
@@ -226,8 +168,9 @@
 ## 依赖关系
 
 - 依赖史诗7,8,9,10移植的API模块和UI组件包
+- **依赖史诗012(API补充与数据库扩展)**:提供企业用户认证、企业统计、人才扩展、订单统计、数据统计、视频管理、系统设置等API接口
 - 依赖现有mini项目的基础框架和构建配置
-- 依赖数据库schema与移植模块保持一致
+- 依赖数据库schema与移植模块保持一致(通过史诗012扩展)
 - 需要测试环境支持,包括API服务和数据库
 
 ## 测试策略

+ 322 - 0
docs/prd/epic-012-api-supplement-for-employer-mini-program.md

@@ -0,0 +1,322 @@
+# 史诗012 - 用人方小程序API补充与数据库扩展
+
+## 史诗目标
+为用人方小程序补充缺失的API接口并扩展数据库schema,基于现有allin系统移植模块的基础,为企业用户管理功能提供完整的数据支持。
+
+## 史诗描述
+
+### 现有系统上下文
+
+**当前相关功能:**
+- **mini项目**:基础小程序前端,现有登录、注册、个人资料等基础页面
+- **API客户端**:已集成auth、user、role、file模块的RPC客户端(api.ts)
+- **史诗7,8,9,10成果**:已移植allin系统的7个后端模块和对应UI模块(channel、company、disability_person、order、platform、salary等)
+- **数据库现状**:PostgreSQL数据库包含19个业务表,已支持核心业务数据存储
+
+**数据库分析发现:**
+- **企业用户认证缺失**:`users2`表只有admin用户,缺乏企业用户与`employer_company`表的关联
+- **视频管理基础存在**:`order_person_asset`表已支持文件关联,但`asset_type`枚举需要扩展以支持工资视频、个税视频、打卡视频、工作视频等类型
+- **数据统计需要实时计算**:无专门统计表,需要基于`disabled_person`、`employment_order`、`order_person`等表实时计算
+- **年龄统计字段缺失**:`disabled_person`表只有`age`字段,缺乏`birth_date`字段用于准确年龄统计
+- **个人征信信息存储**:通过`disabled_bank_card.file_id`关联`files`表存储个人征信截图
+- **企业统计可基于现有表**:`employer_company`、`employment_order`、`order_person`表已包含必要关联关系
+
+**技术栈:**
+- 后端:TypeScript、Hono、Zod OpenAPI、Prisma/Drizzle
+- 数据库:PostgreSQL 17
+- API通信:基于Hono RPC的API客户端模式
+- 测试:Vitest(后端模块使用Vitest)
+- 包管理:pnpm workspace
+
+**集成点:**
+- 基于史诗7,8,9,10移植的allin系统模块进行扩展
+- 保持现有数据库schema的向后兼容性
+- 遵循现有的模块结构和API设计模式
+
+### 增强详情
+
+**新增/变更内容:**
+补充用人方小程序所需的9大类API接口,包括:
+1. 数据库schema扩展:添加`birth_date`字段、扩展`asset_type`枚举、添加`company_id`关联字段
+2. 企业用户认证API:支持企业用户手机号密码登录、获取企业用户信息
+3. 企业统计API:企业概览统计、企业维度人才统计
+4. 人才扩展API:工作历史查询、薪资历史查询、个人征信信息查询、视频关联查询
+5. 订单统计API:打卡数据统计、视频统计、企业维度订单查询
+6. 数据统计API:残疾类型分布、性别分布、年龄分布、户籍分布、在职状态统计、薪资分布
+7. 视频管理API:视频分类管理、企业/个人维度视频查询、批量下载功能
+8. 系统设置API:账号信息管理、安全设置、消息通知设置
+9. API文档与测试:OpenAPI文档、TypeScript类型定义、单元测试
+
+**API路径约定:**
+所有用人方小程序的API路径统一使用 `api/v1/yongren` 前缀,与现有管理后台的API路径做区分。例如:
+- 企业用户登录:`POST /api/v1/yongren/auth/login`
+- 企业概览统计:`GET /api/v1/yongren/company/overview`
+- 人才工作历史:`GET /api/v1/yongren/disability-person/{id}/work-history`
+
+现有管理后台API保持不变,新增的用人方小程序API使用独立的路由前缀,避免路径冲突。
+
+**成功标准:**
+1. 所有补充API功能完整,符合用人方小程序需求
+2. 数据库schema扩展不影响现有数据操作
+3. API与现有allin系统移植模块无缝集成
+4. 通过Vitest测试验证,包括单元测试和集成测试
+5. 提供完整的OpenAPI文档和TypeScript类型定义
+
+## 故事列表
+
+**API路径约定说明:**
+所有新增的用人方小程序API必须遵循 `api/v1/yongren` 前缀约定,确保与现有管理后台API路径隔离。每个故事在实现API接口时需确保路径前缀正确。
+
+### 故事012-01:数据库schema扩展
+**背景:** 现有数据库表结构缺少支持用人方小程序完整功能的关键字段,需要在不影响现有数据的前提下扩展schema。
+
+**任务列表:**
+1. 在`disabled_person`表添加可为空的`birth_date`字段(DATE类型),用于准确年龄统计
+2. 扩展`order_person_asset`表的`asset_type`枚举,新增视频类型:`salary_video`(工资视频)、`tax_video`(个税视频)、`checkin_video`(打卡视频)、`work_video`(工作视频)
+3. 在`users2`表添加可为空的`company_id`字段(外键引用`employer_company.company_id`),建立企业用户关联
+4. 创建数据库迁移脚本,支持向前和向后迁移
+5. 更新对应的Prisma/Drizzle schema定义
+6. 验证现有数据不受影响,新增字段可为空
+
+**验收标准:**
+- [ ] `disabled_person`表成功添加`birth_date`字段,现有记录该字段值为NULL
+- [ ] `order_person_asset`表的`asset_type`枚举扩展完成,新增视频类型枚举值
+- [ ] `users2`表成功添加`company_id`字段,现有admin用户的该字段值为NULL
+- [ ] 数据库迁移脚本可正确执行向前和向后迁移
+- [ ] Prisma/Drizzle schema定义更新完成
+- [ ] 现有业务功能不受影响,测试通过
+
+### 故事012-02:企业用户认证API扩展
+**背景:** 现有auth-module仅支持管理员用户认证,需要扩展以支持企业用户手机号密码登录和企业信息关联。
+
+**任务列表:**
+1. 扩展auth-module,添加企业用户手机号密码登录接口
+2. 添加企业用户退出登录接口
+3. 添加获取企业用户信息接口,包含关联的企业详情(从`employer_company`表获取)
+4. 基于`users2`表的`company_id`字段验证企业用户权限
+5. 更新认证中间件,支持企业用户身份识别
+6. 添加企业用户注册接口(如需要)
+7. 编写单元测试和集成测试
+
+**验收标准:**
+- [ ] 企业用户可使用手机号和密码成功登录
+- [ ] 企业用户登录后可获取包含企业详情的用户信息
+- [ ] 企业用户可成功退出登录
+- [ ] 认证中间件正确识别企业用户身份
+- [ ] 企业用户权限验证逻辑正确
+- [ ] 所有新增接口通过单元测试和集成测试
+- [ ] API文档完整,包含OpenAPI定义和TypeScript类型
+
+### 故事012-03:企业统计与人才扩展API
+**背景:** 企业需要查看概览统计和人才详细信息,现有company-module和disability-module需要扩展聚合查询接口。
+
+**任务列表:**
+1. **企业统计API**(company-module扩展):
+   - 基于`employer_company`、`employment_order`、`order_person`表实时计算企业概览统计
+   - 接口返回:在职人员数、进行中订单数、已完成订单数、累计订单数
+   - 企业维度人才统计:分配人才列表、人才状态分布
+
+2. **人才扩展API**(disability-module扩展):
+   - 工作历史查询:基于`order_person`表查询个人的历史工作记录(关联`employment_order`表)
+   - 薪资历史查询:基于`order_person.salary_detail`字段和`order`表查询历史薪资记录
+   - 个人征信信息查询:基于`disabled_bank_card.file_id`关联`files`表获取征信截图信息
+   - 视频关联查询:基于`order_person_asset`表查询关联的视频文件(按扩展的asset_type分类)
+
+3. 添加适当的数据库索引优化查询性能
+4. 编写单元测试和集成测试
+
+**验收标准:**
+- [ ] 企业概览统计接口返回正确的在职人员数、订单数等数据
+- [ ] 企业维度人才统计接口返回分配人才列表和状态分布
+- [ ] 人才工作历史查询接口返回个人的历史工作记录
+- [ ] 人才薪资历史查询接口返回历史薪资记录
+- [ ] 个人征信信息查询接口返回征信截图信息
+- [ ] 视频关联查询接口返回按类型分类的关联视频列表
+- [ ] 查询性能优化,添加必要的数据索引
+- [ ] 所有接口通过单元测试和集成测试
+
+### 故事012-04:订单统计与数据统计API
+**背景:** 企业需要订单管理数据统计和整体数据可视化统计,需要扩展order-module和创建统计模块。
+
+**任务列表:**
+1. **订单统计API**(order-module扩展):
+   - 打卡数据统计:基于`order_person_asset`表(asset_type为`checkin_video`)统计打卡视频数量
+   - 视频统计:按视频类型(工资、个税、打卡、工作)分类统计
+   - 企业维度订单查询:支持按企业ID过滤订单列表,包含订单状态、人员关联等详细信息
+
+2. **数据统计API**(创建统计模块或扩展现有模块):
+   - 残疾类型分布:基于`disabled_person.disability_type`统计
+   - 性别分布:基于`disabled_person.gender`统计
+   - 年龄分布:基于新增的`birth_date`字段计算年龄分组(18-25、26-35、36-45、46+)
+   - 户籍分布:基于`disabled_person.household_province`和`household_city`统计
+   - 在职状态统计:基于`disabled_person.job_status`统计
+   - 薪资分布:基于`order_person.salary_detail`统计薪资范围分布
+
+3. 优化实时统计查询性能,添加汇总视图或物化视图(如需要)
+4. 编写单元测试和集成测试
+
+**验收标准:**
+- [ ] 订单打卡数据统计接口返回正确的打卡视频数量
+- [ ] 订单视频统计接口按类型分类返回统计结果
+- [ ] 企业维度订单查询接口支持按企业ID过滤,返回完整订单信息
+- [ ] 所有数据统计接口返回正确的统计结果
+- [ ] 年龄统计基于`birth_date`字段准确计算
+- [ ] 统计查询性能良好,大数据量下响应时间可接受
+- [ ] 所有接口通过单元测试和集成测试
+
+### 故事012-05:视频管理API扩展
+**背景:** 企业需要管理各类工作视频,现有file-module需要扩展以支持视频分类管理和批量下载。
+
+**任务列表:**
+1. 扩展file-module或创建视频管理模块:
+   - 视频分类管理:支持按扩展的asset_type枚举分类查询
+   - 企业维度视频查询:基于企业ID查询关联的所有视频(通过`employment_order`→`order_person`→`order_person_asset`关联链)
+   - 个人维度视频查询:基于人员ID查询关联的视频
+   - 批量下载功能:支持按企业或个人维度批量下载视频文件
+
+2. 添加视频元数据管理(上传时间、类型、关联订单/人员等)
+3. 优化视频查询性能,添加适当的数据库索引
+4. 实现视频文件流式下载,支持大文件高效传输
+5. 编写单元测试和集成测试
+
+**验收标准:**
+- [ ] 视频分类查询接口支持按asset_type过滤
+- [ ] 企业维度视频查询接口返回企业关联的所有视频
+- [ ] 个人维度视频查询接口返回个人关联的视频
+- [ ] 批量下载功能支持按企业或个人维度下载多个视频文件
+- [ ] 视频元数据管理完整,包含上传时间、类型等
+- [ ] 视频查询性能优化,添加必要的数据索引
+- [ ] 所有接口通过单元测试和集成测试
+
+### 故事012-06:系统设置API
+**背景:** 企业用户需要管理账号设置、安全设置和消息通知,需要添加企业用户专属的设置接口。
+
+**任务列表:**
+1. 添加企业用户专属的设置接口:
+   - 账号信息管理:修改手机号、密码等
+   - 安全设置:登录设备管理、登录日志查询
+   - 消息通知设置:订单状态通知、人才分配通知等开关设置
+
+2. 创建或扩展现有的设置模块
+3. 实现设置数据的持久化存储
+4. 添加设置变更的历史记录
+5. 编写单元测试和集成测试
+
+**验收标准:**
+- [ ] 账号信息管理接口支持修改手机号、密码等
+- [ ] 安全设置接口提供登录设备管理和登录日志查询
+- [ ] 消息通知设置接口支持各类通知的开关控制
+- [ ] 设置数据正确持久化存储
+- [ ] 设置变更历史记录完整
+- [ ] 所有接口通过单元测试和集成测试
+
+### 故事012-07:API文档与测试完善
+**背景:** 所有新增API需要完整的文档和测试覆盖,确保代码质量和可维护性。
+
+**任务列表:**
+1. 为所有新增API编写完整的OpenAPI文档
+2. 生成TypeScript类型定义文件,供前端使用
+3. 编写全面的单元测试,覆盖正常流程和异常情况
+4. 编写集成测试,验证API与数据库的集成
+5. 添加API性能测试,确保响应时间符合要求
+6. 更新模块的README文档,说明新增功能
+7. 验证所有测试通过,代码覆盖率达标
+
+**验收标准:**
+- [ ] 所有新增API都有完整的OpenAPI文档
+- [ ] TypeScript类型定义文件生成完成
+- [ ] 单元测试覆盖率达标(建议80%以上)
+- [ ] 集成测试覆盖主要业务场景
+- [ ] API性能测试通过,响应时间符合要求
+- [ ] 模块README文档更新完成
+- [ ] 所有测试通过,代码质量检查通过
+
+## 兼容性要求
+
+- [ ] 现有数据库schema变化保持向后兼容
+- [ ] 现有API接口不受影响,功能正常
+- [ ] 新增字段可为空,不影响现有数据
+- [ ] 枚举扩展保留原有枚举值,确保兼容
+- [ ] 现有业务逻辑不受影响
+- [ ] 性能影响最小化,不影响现有功能响应速度
+
+## 风险缓解
+
+**主要风险:**
+1. **数据库schema变更风险**:新增字段和枚举扩展可能影响现有数据操作和查询
+2. **API集成风险**:新API可能影响现有模块的稳定性
+3. **性能风险**:实时统计查询可能影响数据库性能
+4. **兼容性风险**:新增功能可能影响现有系统集成
+
+**缓解措施:**
+1. **数据库变更分步实施**:
+   - 先添加可为空的`birth_date`字段,不影响现有记录
+   - 扩展`asset_type`枚举时保留原有枚举值,确保向后兼容
+   - `users2`表添加可为空的`company_id`字段,现有admin用户不受影响
+2. **逐步集成**:每个故事独立实现和测试,分阶段集成验证
+3. **性能优化**:
+   - 实时统计查询添加适当的数据库索引
+   - 考虑使用物化视图缓存高频统计结果
+   - 大数据量查询添加分页和查询条件优化
+4. **兼容性保障**:
+   - 保持现有API接口不变
+   - 新增功能通过新接口提供
+   - 充分测试现有功能回归
+
+**回滚计划:**
+1. 如果新增功能导致严重问题,可临时禁用新增API路由
+2. 数据库schema变更支持可逆回滚:
+   - `birth_date`字段:如需要可删除该字段,不影响核心业务数据
+   - `asset_type`枚举扩展:新增的枚举值不影响原有数据,可安全保留
+   - `company_id`字段:如需要可删除该字段,企业用户可暂时通过其他方式关联
+3. 保留完整的数据迁移脚本,支持向前和向后迁移
+4. API客户端变更可通过版本控制回退到上一个稳定版本
+
+## 完成定义
+
+- [ ] 所有7个故事完成,验收标准全部满足
+- [ ] 数据库schema扩展完成,不影响现有数据
+- [ ] 所有补充API功能完整,符合用人方小程序需求
+- [ ] API与现有allin系统移植模块无缝集成
+- [ ] 通过Vitest测试验证,单元测试和集成测试覆盖率达标
+- [ ] 提供完整的OpenAPI文档和TypeScript类型定义
+- [ ] 性能测试通过,查询响应时间符合要求
+- [ ] 代码符合项目编码规范,通过代码审查
+
+## 依赖关系
+
+- 依赖史诗7,8,9,10移植的API模块作为基础
+- 依赖现有数据库schema,在基础上进行扩展
+- 故事012-01(数据库schema扩展)是其他故事的基础依赖
+- 故事012-07(API文档与测试)依赖其他所有故事完成
+- 史诗011(用人方小程序功能实现)依赖本史诗完成
+
+## 测试策略
+
+1. **单元测试**:对每个新增API接口、服务函数、工具函数进行Vitest单元测试
+2. **集成测试**:测试API与数据库的集成,验证数据操作正确性
+3. **性能测试**:验证实时统计查询的性能,确保响应时间符合要求
+4. **兼容性测试**:验证新增功能不影响现有API接口
+5. **回归测试**:确保现有业务功能不受影响
+6. **数据库迁移测试**:测试数据库schema变更脚本的正确性和可逆性
+
+## 执行顺序建议
+
+1. **先完成故事012-01**:数据库schema扩展是基础,其他故事依赖
+2. **然后并行执行故事012-02至012-06**:这些故事相对独立,可并行开发
+3. **最后完成故事012-07**:在所有API实现完成后进行文档和测试完善
+4. **按模块分组**:同一模块的扩展建议由同一开发者完成,确保一致性
+
+---
+
+**故事经理交接说明:**
+
+请为这个API补充史诗开发详细用户故事。关键考虑:
+
+- 这是对现有allin系统移植模块的API扩展,技术栈:TypeScript、Hono、Zod OpenAPI、PostgreSQL
+- 集成点:史诗7,8,9,10移植的allin系统API模块(channel、company、disability_person、order、platform、salary等)
+- 现有模式:遵循现有模块的API设计模式、数据库schema模式
+- 关键兼容要求:不影响现有API接口,数据库schema变化保持向后兼容
+- 每个故事必须验证现有功能保持完整
+
+史诗应在保持系统兼容性的同时,为企业用户管理功能提供完整的API支持,为史诗011(用人方小程序功能实现)奠定基础。