42 lines
1.1 KiB
TypeScript
Vendored
42 lines
1.1 KiB
TypeScript
Vendored
import { get, post, put, del } from './client'
|
|
import type { PaginatedResponse } from '@/types/api'
|
|
|
|
export interface Redemption {
|
|
id: number
|
|
name: string
|
|
key: string
|
|
quota: number
|
|
used_count: number
|
|
status: number
|
|
created_time: number
|
|
redeemed_time: number
|
|
}
|
|
|
|
export function getRedemptions(page = 1, size = 10, search = '') {
|
|
return get<PaginatedResponse<Redemption>>('/redemption/', {
|
|
page,
|
|
page_size: size,
|
|
keyword: search,
|
|
})
|
|
}
|
|
|
|
export function searchRedemptions(params: Record<string, unknown> = {}) {
|
|
return get<PaginatedResponse<Redemption>>('/redemption/search', params)
|
|
}
|
|
|
|
export function createRedemption(data: Partial<Redemption>) {
|
|
return post<Redemption>('/redemption/', data)
|
|
}
|
|
|
|
export function updateRedemption(data: Partial<Redemption>) {
|
|
return put<Redemption>(`/redemption/${data.id}`, data)
|
|
}
|
|
|
|
export function deleteRedemption(id: number) {
|
|
return del<{ success: boolean }>(`/redemption/${id}`)
|
|
}
|
|
|
|
export function batchDeleteInvalidRedemptions() {
|
|
return post<{ success: boolean; count: number }>('/redemption/batch_delete_invalid')
|
|
}
|