First commit

This commit is contained in:
shaw
2025-12-18 13:50:39 +08:00
parent 569f4882e5
commit 642842c29e
218 changed files with 86902 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
/**
* Redeem code API endpoints
* Handles redeem code redemption for users
*/
import { apiClient } from './client';
import type { RedeemCodeRequest } from '@/types';
export interface RedeemHistoryItem {
id: number;
code: string;
type: string;
value: number;
status: string;
used_at: string;
created_at: string;
// 订阅类型专用字段
group_id?: number;
validity_days?: number;
group?: {
id: number;
name: string;
};
}
/**
* Redeem a code
* @param code - Redeem code string
* @returns Redemption result with updated balance or concurrency
*/
export async function redeem(code: string): Promise<{
message: string;
type: string;
value: number;
new_balance?: number;
new_concurrency?: number;
}> {
const payload: RedeemCodeRequest = { code };
const { data } = await apiClient.post<{
message: string;
type: string;
value: number;
new_balance?: number;
new_concurrency?: number;
}>('/redeem', payload);
return data;
}
/**
* Get user's redemption history
* @returns List of redeemed codes
*/
export async function getHistory(): Promise<RedeemHistoryItem[]> {
const { data } = await apiClient.get<RedeemHistoryItem[]>('/redeem/history');
return data;
}
export const redeemAPI = {
redeem,
getHistory,
};
export default redeemAPI;