44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
/**
|
|
* API для реферальной системы
|
|
*/
|
|
|
|
import apiClient from '@/lib/api-client';
|
|
|
|
export interface ReferralProfile {
|
|
referral_code: string;
|
|
referral_link: string;
|
|
total_points: number;
|
|
}
|
|
|
|
export interface ReferralStats {
|
|
referral_code: string;
|
|
total_points: number;
|
|
current_level: { level: number; name: string };
|
|
referrals: { direct: number; indirect: number; total: number };
|
|
earnings: { total: number };
|
|
bonus_account: { balance: number };
|
|
}
|
|
|
|
export async function getReferralProfile(): Promise<ReferralProfile | null> {
|
|
try {
|
|
const response = await apiClient.get<any>('/referrals/my_profile/');
|
|
return response.data;
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export async function getReferralStats(): Promise<ReferralStats | null> {
|
|
try {
|
|
const response = await apiClient.get<any>('/referrals/stats/');
|
|
return response.data;
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/** Установить реферера по коду (после регистрации). */
|
|
export async function setReferrer(referralCode: string): Promise<void> {
|
|
await apiClient.post('/referrals/set_referrer/', { referral_code: referralCode.trim() });
|
|
}
|