# AI有声书 v2 - 架构

> 系统架构和关键设计决策。
> 维护者：team-lead, devs（架构变更后更新）

## 系统概览

AI 有声书生成平台，包含：
- **前端**：uni-app (Vue 3)，多端支持（H5/小程序）
- **后端**：Node.js + Express，Prisma ORM
- **数据库**：PostgreSQL
- **实时通信**：WebSocket（生成进度推送）

## 组件图

```
┌─────────────────┐     ┌─────────────────┐
│   微信小程序      │     │   H5 / Web      │
│   (uni-app)     │     │   (uni-app)     │
└────────┬────────┘     └────────┬────────┘
         │                       │
         └───────────┬───────────┘
                     │ HTTP/WebSocket
         ┌───────────▼───────────┐
         │     Node.js API       │
         │   (Express + Prisma)  │
         └───────────┬───────────┘
                     │
    ┌─────────────────┼─────────────────┐
    │                 │                 │
┌───▼───┐      ┌─────▼─────┐    ┌─────▼─────┐
│PostgreSQL│    │  文件存储   │    │  AI 服务   │
│         │    │(本地/NFS) │    │ (TTS API) │
└─────────┘    └───────────┘    └───────────┘
```

## 目录结构

```
audio_codebuddy/
├── my-uniapp-vue3/          # 前端 uniapp 项目
│   └── src/
│       ├── pages/           # 页面
│       ├── components/      # 组件
│       ├── stores/          # Pinia 状态
│       └── utils/            # 工具函数
├── server/                  # 后端 Node.js
│   └── src/
│       ├── modules/          # 业务模块
│       │   └── book-generator/
│       ├── services/         # 服务层
│       └── app.ts            # Express 入口
└── 优化开发计划.md           # 优化文档
```

## 技术栈

- **前端**：Vue 3 + TypeScript + uni-app + Pinia
- **后端**：Node.js + Express + TypeScript + Prisma
- **数据库**：PostgreSQL + Prisma ORM
- **实时**：WebSocket（ws 库）
- **AI**：TTS API（外部服务）

## 关键设计

### 有声书生成流程

1. 创建书籍 → AI 生成章节内容
2. 生成音频 → TTS 文字转语音
3. 生成视频 → 音频 + 封面图合成
4. 发布分享

### 状态管理

- 前端：Pinia stores（bookStore, playerStore, userStore）
- 后端：Prisma + 内存状态（book-generator.store.ts）

### API 设计

- RESTful API
- WebSocket 推送生成进度
- 前后端接口见 api-contracts.md
