feat(redeem): add redeem code batch update

This commit is contained in:
wucm667
2026-05-20 16:08:41 +08:00
parent 7ec61eb2f5
commit 3263ca63c7
18 changed files with 1144 additions and 7 deletions
+24 -2
View File
@@ -7,6 +7,7 @@ import { apiClient } from '../client'
import type {
RedeemCode,
GenerateRedeemCodesRequest,
BatchUpdateRedeemCodeFields,
RedeemCodeType,
PaginatedResponse
} from '@/types'
@@ -23,7 +24,7 @@ export async function list(
pageSize: number = 20,
filters?: {
type?: RedeemCodeType
status?: 'active' | 'used' | 'expired' | 'unused'
status?: 'active' | 'used' | 'expired' | 'unused' | 'disabled'
search?: string
sort_by?: string
sort_order?: 'asc' | 'desc'
@@ -118,6 +119,26 @@ export async function batchDelete(ids: number[]): Promise<{
return data
}
/**
* Batch update selected redeem code fields
* @param ids - Array of redeem code IDs
* @param fields - Field collection to update
* @returns Updated count
*/
export async function batchUpdate(
ids: number[],
fields: BatchUpdateRedeemCodeFields
): Promise<{
updated: number
message: string
}> {
const { data } = await apiClient.post<{
updated: number
message: string
}>('/admin/redeem-codes/batch-update', { ids, fields })
return data
}
/**
* Expire redeem code
* @param id - Redeem code ID
@@ -158,7 +179,7 @@ export async function getStats(): Promise<{
*/
export async function exportCodes(filters?: {
type?: RedeemCodeType
status?: 'used' | 'expired' | 'unused'
status?: 'used' | 'expired' | 'unused' | 'disabled'
search?: string
sort_by?: string
sort_order?: 'asc' | 'desc'
@@ -176,6 +197,7 @@ export const redeemAPI = {
generate,
delete: deleteCode,
batchDelete,
batchUpdate,
expire,
getStats,
exportCodes