Enhance AI and Redis integration for smoke logging features

- Added AI configuration options to .env.example and config.go for OpenAI integration.
- Implemented Redis caching for session management in main.go and auth middleware.
- Updated smoke logging service to support real smoking time (`smoke_at`) and AI advice retrieval.
- Enhanced API routes to include endpoints for AI advice and unlock functionality for non-members.
- Improved database schema with new tables for AI advice and unlock records.
- Expanded documentation to cover new AI features and Redis caching implementation.
This commit is contained in:
nepiedg
2026-01-03 02:14:21 +00:00
parent 1c48fbdeaf
commit 16844d4a42
30 changed files with 1662 additions and 9 deletions
+71
View File
@@ -0,0 +1,71 @@
# 会员兑换码 API
所有接口前缀:`/api/v1`
除登录外都需要:`Authorization: Bearer <session_key>`(见:`docs/common/auth.md`
## 1) 生成兑换码(后台口令)
`POST /api/v1/membership/redeem_codes`
Header
- `X-Admin-Token: <ADMIN_API_TOKEN>`
请求体:
```json
{
"count": 10,
"plan": "month",
"duration_days": 30,
"expires_at": "2026-12-31 23:59:59",
"max_uses": 1
}
```
说明:
- 需要在环境变量配置 `ADMIN_API_TOKEN`,否则接口会返回 503。
- 兑换码明文只在生成时返回;服务端只保存 `sha256(code)`
成功响应(示例):
```json
{
"code": 200,
"message": "success",
"data": {
"count": 10,
"codes": [
{ "code": "ABCD...1234", "plan": "month" }
]
}
}
```
## 2) 使用兑换码开通/延长会员
`POST /api/v1/membership/redeem`
请求体:
```json
{
"code": "ABCD...1234"
}
```
成功响应(示例):
```json
{
"code": 200,
"message": "success",
"data": {
"plan": "month",
"starts_at": "2026-01-03T10:00:00+08:00",
"ends_at": "2026-02-02T10:00:00+08:00",
"extended": false,
"code_suffix": "X7K9Q2"
}
}
```
常见错误:
- `400`:兑换码无效/过期/已被使用/不可用
- `401`:未登录或 token 失效