feat: 实现注册优惠码功能

- 支持创建/编辑/删除优惠码,设置赠送金额和使用限制
  - 注册页面实时验证优惠码并显示赠送金额
  - 支持 URL 参数自动填充 (?promo=CODE)
  - 添加优惠码验证接口速率限制
  - 使用数据库行锁防止并发超限
  - 新增后台优惠码管理页面,支持复制注册链接
This commit is contained in:
long
2026-01-10 13:14:35 +08:00
parent 7d1fe818be
commit d2fc14fb97
79 changed files with 17045 additions and 54 deletions

View File

@@ -50,6 +50,7 @@ export interface RegisterRequest {
password: string
verify_code?: string
turnstile_token?: string
promo_code?: string
}
export interface SendVerifyCodeRequest {
@@ -960,3 +961,44 @@ export interface UpdateUserAttributeRequest {
export interface UserAttributeValuesMap {
[attributeId: number]: string
}
// ==================== Promo Code Types ====================
export interface PromoCode {
id: number
code: string
bonus_amount: number
max_uses: number
used_count: number
status: 'active' | 'disabled'
expires_at: string | null
notes: string | null
created_at: string
updated_at: string
}
export interface PromoCodeUsage {
id: number
promo_code_id: number
user_id: number
bonus_amount: number
used_at: string
user?: User
}
export interface CreatePromoCodeRequest {
code?: string
bonus_amount: number
max_uses?: number
expires_at?: number | null
notes?: string
}
export interface UpdatePromoCodeRequest {
code?: string
bonus_amount?: number
max_uses?: number
status?: 'active' | 'disabled'
expires_at?: number | null
notes?: string
}