# 开发任务列表: 004 - 系统能力与集成

基于实施计划，为“系统能力与集成”功能分解出以下开发任务。

## 后端 (Backend)

### 核心服务与数据库

- [ ] **BE-DB-08**: 创建 `processed_callbacks` 表的数据库迁移脚本。
- [ ] **BE-DB-09**: 更新 `invitations` 表的迁移脚本，增加 `ip_address` 和 `user_agent` 字段。
- [ ] **BE-DB-10**: 创建 `failed_reward_jobs` 表的数据库迁移脚本。
- [ ] **BE-SETUP-01**: 在项目中安装、配置并初始化消息队列服务（如 RabbitMQ 或 BullMQ）。
- [ ] **BE-WORKER-01**: 创建奖励发放Worker服务的基本结构，并连接到消息队列。

### API & 业务逻辑

- [ ] **BE-API-14**: 开发一个可重用的 `X-API-Key` 认证中间件。
- [ ] **BE-API-15**: 开发一个可重用的、基于Redis的可配置速率限制中间件。
- [ ] **BE-API-16**: 实现 `POST /api/v1/callback/register` 接口的完整逻辑，包括认证、速率限制、幂等性检查和向队列分发任务。
- [ ] **BE-TEST-04**: 为回调API编写完整的测试用例，特别是要覆盖幂等性和速率限制的场景。

### 异步任务 Worker

- [ ] **BE-WORKER-02**: 在Worker中实现调用外部奖励API的逻辑（使用适配器模式）。
- [ ] **BE-WORKER-03**: 在Worker中实现任务失败后的重试逻辑（指数退避延迟）。
- [ ] **BE-WORKER-04**: 在Worker中实现任务重试耗尽后，将任务存入 `failed_reward_jobs` 表的逻辑。
- [ ] **BE-ALERT-01**: 实现一个简单的通知服务，当有新条目写入 `failed_reward_jobs` 时，向管理员发送警报。

## 前端 (Frontend)

- [ ] **FE-UI-16**: （可选）在管理后台创建一个简单的页面，用于展示和管理失败的奖励发放任务。
- [ ] **FE-API-04**: （可选）为上述页面开发一个获取失败任务列表的API请求函数。
