Implement compression quota refunds and admin manual subscription

This commit is contained in:
2025-12-19 23:28:32 +08:00
commit 11f48fd3dd
106 changed files with 27848 additions and 0 deletions

46
docs/confirm.md Normal file
View File

@@ -0,0 +1,46 @@
# 开工前确认清单 - ImageForge
目的:把“产品口径/计费口径/关键体验”一次性定稿,避免边做边改导致返工。
---
## 1. 已确认(按你的要求已写入各文档)
- 支付Stripe
- 超额策略:硬配额(超出返回 `402 QUOTA_EXCEEDED`
- 订阅周期:按 Stripe 订阅周期(`current_period_start` ~ `current_period_end`),不是自然月
- 匿名试用:支持;每日 10 次(以成功压缩文件数计)
- Free 套餐:不开放对外 API仅 Pro/Business 可创建 API Key
- 邮件:注册邮箱验证 + 密码重置SMTP
- 默认语言:中文
---
## 2. 需要你确认的默认口径(我已在文档里按“建议默认值”写死)
1) **Free 配额周期**
- 当前写法Free未订阅按自然月UTC+8重置Pro/Business 按订阅周期。
2) **匿名试用的“日界”与识别**
- 当前写法匿名试用按自然日UTC+800:00 重置;采用 Cookie + IP 双限制。
3) **批量任务遇到额度不足时的行为**
- 当前写法:`POST /compress/batch` 若本周期剩余单位不足以覆盖上传文件数,直接返回 `402`,不创建任务。
4) **默认套餐参数(可改)**
- Free500 / 月5MB 单文件10/批量,保留 24h
- Pro10,000 / 订阅周期20MB 单文件50/批量,保留 7 天
- Business100,000+ / 订阅周期50MB 单文件200/批量,保留 30 天
5) **邮箱未验证是否禁止压缩**
- 当前文档口径:注册用户未验证邮箱时,调用压缩接口返回 `EMAIL_NOT_VERIFIED`(匿名试用不受影响)。
---
## 3. 你只需要回复我 5 个点(同意/修改)
- Free 配额周期按自然月UTC+8是否 OK
- 匿名试用按自然日UTC+8是否 OK是否要“仅 Cookie”还是“Cookie + IP 双限制”?
- 批量额度不足:是否坚持“直接 402 不建任务”,还是允许“部分成功/部分失败”?
- 套餐默认值Free/Pro/Business 的配额、大小、保留期是否调整?
- 邮箱验证:是否必须验证后才能压缩?