feat: 实现注册优惠码功能
- 支持创建/编辑/删除优惠码,设置赠送金额和使用限制 - 注册页面实时验证优惠码并显示赠送金额 - 支持 URL 参数自动填充 (?promo=CODE) - 添加优惠码验证接口速率限制 - 使用数据库行锁防止并发超限 - 新增后台优惠码管理页面,支持复制注册链接
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user