# Relay-SaaS 项目开发指引

## 📌 项目概述

**项目名称：** Relay-SaaS（基于 one-api 的多租户 SaaS 系统）
**代码仓库：** https://git.586vip.cn/oadmin/relay-saas.git
**基础项目：** one-api (https://github.com/songquanpeng/one-api)

## 🎯 核心目标

构建一个多租户 API 中继 SaaS 平台：
- **主系统**：统一管理上游 API 渠道，集中计费
- **代理站点**：独立部署，服务终端用户
- **月套餐系统**：日/周/月额度限制的令牌系统

## 📋 重要提醒

### 开发原则
1. ⚠️ **保持可升级性**
   - 新功能尽量创建新文件
   - 避免大量修改核心代码
   - 使用插件化架构

2. ⚠️ **每次开发前**
   - 更新 `docs/DEVELOPMENT.md` 的开发记录
   - 使用 TodoWrite 工具管理任务
   - 在 Git commit 前确认修改内容

3. ⚠️ **提交代码时**
   - 写清晰的 commit message
   - 格式：`[模块] 功能描述`
   - 例如：`[套餐系统] 添加日限额度检查逻辑`

4. ⚠️ **测试要求**
   - 每个新功能必须手动测试
   - 记录测试结果到开发文档
   - 保证向后兼容

### 文件组织

**关键文档位置：**
- 📄 技术方案：`docs/SAAS-PLAN.md`
- 📝 开发记录：`docs/DEVELOPMENT.md`
- 📋 任务清单：`docs/TODO.md`
- 🔧 配置模板：`docs/DEPLOYMENT.md`

**代码组织：**
- 🆕 新增功能：`common/subscription/`, `model/agent_*.go`
- 🔧 扩展代码：在现有文件添加方法，不破坏原有逻辑
- 🧪 测试代码：`*_test.go` 文件

### Git 工作流

```bash
# 创建功能分支
git checkout -b feature/subscription-system

# 开发完成后提交
git add .
git commit -m "[套餐系统] 实现日/周/月额度限制"

# 推送到远程
git push origin feature/subscription-system

# 合并到 main
git checkout main
git merge feature/subscription-system
git push origin main
```

### 开发流程检查清单

- [ ] 确认需求，明确功能目标
- [ ] 更新 `docs/TODO.md` 任务状态
- [ ] 创建功能分支（可选）
- [ ] 编写代码，遵循现有风格
- [ ] 手动测试功能
- [ ] 更新 `docs/DEVELOPMENT.md` 记录
- [ ] 提交代码，写清晰的 message
- [ ] 推送到远程仓库

## 🔗 相关资源

- **Go 语言**：https://go.dev/doc/
- **Gin 框架**：https://gin-gonic.com/docs/
- **GORM**：https://gorm.io/docs/
- **One-API 文档**：项目 README.md

## 📞 联系方式

- **项目负责人**：huangzhenpc
- **Git 用户**：huangzhenpc
- **Git 仓库**：git.586vip.cn

---

**最后更新：** 2025-12-29
**文档版本：** v1.0
