mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
- Remove legacy .eslintrc.cjs and .eslintignore - Add eslint.config.js with flat config, security rules (no-eval, no-implied-eval, no-new-func, no-script-url) - Add .prettierrc and .prettierignore - Format entire codebase with prettier
66 lines
1.6 KiB
TypeScript
66 lines
1.6 KiB
TypeScript
import apiClient from './client';
|
|
import type { ReferralInfo, ReferralTerms, PaginatedResponse } from '../types';
|
|
|
|
interface ReferralItem {
|
|
id: number;
|
|
username: string | null;
|
|
first_name: string | null;
|
|
created_at: string;
|
|
has_subscription: boolean;
|
|
has_paid: boolean;
|
|
}
|
|
|
|
interface ReferralEarning {
|
|
id: number;
|
|
amount_kopeks: number;
|
|
amount_rubles: number;
|
|
reason: string;
|
|
referral_username: string | null;
|
|
referral_first_name: string | null;
|
|
created_at: string;
|
|
}
|
|
|
|
interface ReferralEarningsList extends PaginatedResponse<ReferralEarning> {
|
|
total_amount_kopeks: number;
|
|
total_amount_rubles: number;
|
|
}
|
|
|
|
export const referralApi = {
|
|
// Get referral info
|
|
getReferralInfo: async (): Promise<ReferralInfo> => {
|
|
const response = await apiClient.get<ReferralInfo>('/cabinet/referral');
|
|
return response.data;
|
|
},
|
|
|
|
// Get referral list
|
|
getReferralList: async (params?: {
|
|
page?: number;
|
|
per_page?: number;
|
|
}): Promise<PaginatedResponse<ReferralItem>> => {
|
|
const response = await apiClient.get<PaginatedResponse<ReferralItem>>(
|
|
'/cabinet/referral/list',
|
|
{
|
|
params,
|
|
},
|
|
);
|
|
return response.data;
|
|
},
|
|
|
|
// Get referral earnings
|
|
getReferralEarnings: async (params?: {
|
|
page?: number;
|
|
per_page?: number;
|
|
}): Promise<ReferralEarningsList> => {
|
|
const response = await apiClient.get<ReferralEarningsList>('/cabinet/referral/earnings', {
|
|
params,
|
|
});
|
|
return response.data;
|
|
},
|
|
|
|
// Get referral terms
|
|
getReferralTerms: async (): Promise<ReferralTerms> => {
|
|
const response = await apiClient.get<ReferralTerms>('/cabinet/referral/terms');
|
|
return response.data;
|
|
},
|
|
};
|