/** * 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 { const { data } = await apiClient.get('/redeem/history'); return data; } export const redeemAPI = { redeem, getHistory, }; export default redeemAPI;