# Presence Service 文档中心

## 文档目录

| 文档 | 描述 | 适用读者 |
|-----|------|---------|
| [ARCHITECTURE.md](./ARCHITECTURE.md) | 系统架构设计 | 架构师、Tech Lead |
| [API.md](./API.md) | API 接口规范 | 前端/客户端开发者 |
| [DEVELOPMENT.md](./DEVELOPMENT.md) | 开发指南 | 后端开发者 |
| [TESTING.md](./TESTING.md) | 测试策略与实践 | 开发者、QA |
| [DEPLOYMENT.md](./DEPLOYMENT.md) | 部署运维指南 | DevOps、SRE |

---

## 快速导航

### 我是开发者

1. 阅读 [ARCHITECTURE.md](./ARCHITECTURE.md) 了解系统架构
2. 阅读 [DEVELOPMENT.md](./DEVELOPMENT.md) 搭建开发环境
3. 阅读 [TESTING.md](./TESTING.md) 了解测试规范

### 我是前端/客户端开发者

1. 阅读 [API.md](./API.md) 了解接口规范
2. 查看 SDK 示例代码

### 我是 DevOps/SRE

1. 阅读 [DEPLOYMENT.md](./DEPLOYMENT.md) 了解部署方案
2. 配置监控和告警

---

## 服务概览

**Presence Service** 是用户在线状态检测和活跃度分析微服务。

### 核心功能

- 实时在线状态检测 (心跳机制)
- 日活统计 (DAU)
- 在线人数历史查询
- 分析事件收集

### 技术栈

- **运行时**: Node.js 20
- **框架**: NestJS 10
- **语言**: TypeScript 5
- **数据库**: PostgreSQL 15 + Redis 7
- **消息队列**: Kafka
- **ORM**: Prisma 5

### 架构模式

- DDD (领域驱动设计)
- 六边形架构 (Hexagonal Architecture)
- CQRS (命令查询职责分离)

---

## 快速开始

```bash
# 克隆项目
git clone <repository-url>
cd backend/services/presence-service

# 安装依赖
npm install

# 启动基础设施
docker compose -f docker-compose.dev.yml up -d

# 初始化数据库
npx prisma db push

# 启动服务
npm run start:dev
```

---

## 测试

```bash
# 全部测试
npm test

# 单元测试
npm run test:unit

# 集成测试
npm run test:integration

# E2E 测试
npm run test:e2e
```

### 测试统计

| 类型 | 套件数 | 用例数 |
|-----|-------|-------|
| 单元测试 | 9 | 123 |
| 集成测试 | 3 | 22 |
| E2E 测试 | 3 | 20 |
| **总计** | **15** | **165** |

---

## 目录结构

```
presence-service/
├── docs/                   # 文档 (当前目录)
├── src/
│   ├── api/                # API 层 (Controllers, DTOs)
│   ├── application/        # 应用层 (Commands, Queries)
│   ├── domain/             # 领域层 (Entities, Value Objects, Services)
│   ├── infrastructure/     # 基础设施层 (Repositories, Redis, Kafka)
│   └── shared/             # 共享模块 (Filters, Guards, Utils)
├── test/
│   ├── unit/               # 单元测试
│   ├── integration/        # 集成测试
│   └── e2e/                # E2E 测试
├── prisma/                 # Prisma Schema
└── docker-compose*.yml     # Docker 配置
```

---

## 联系方式

- **技术负责人**: [name@example.com]
- **问题反馈**: [GitHub Issues]
