mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-29 18:13:47 +00:00
feat: add Referrals tab to admin user detail page
- New Рефералы tab with three sections: - Referred By: shows who referred this user, assign/remove referrer - Stats grid: total referrals, earnings, commission, referral code - Referrals list: all referred users with navigate and remove buttons - User search with debounce for assigning referrer - Shows warning when selected user already has a referrer - API methods: assignReferrer, removeReferrer, removeReferral - i18n translations for all 4 locales (en, ru, zh, fa)
This commit is contained in:
@@ -536,6 +536,34 @@ export const adminUsersApi = {
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// Assign a referrer to this user
|
||||
assignReferrer: async (
|
||||
userId: number,
|
||||
referrerId: number,
|
||||
): Promise<{ success: boolean; message: string }> => {
|
||||
const response = await apiClient.post(`/cabinet/admin/users/${userId}/assign-referrer`, {
|
||||
referrer_id: referrerId,
|
||||
});
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// Remove this user's referrer
|
||||
removeReferrer: async (userId: number): Promise<{ success: boolean; message: string }> => {
|
||||
const response = await apiClient.delete(`/cabinet/admin/users/${userId}/referrer`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// Remove a specific referral from this user's list
|
||||
removeReferral: async (
|
||||
userId: number,
|
||||
referralUserId: number,
|
||||
): Promise<{ success: boolean; message: string }> => {
|
||||
const response = await apiClient.delete(
|
||||
`/cabinet/admin/users/${userId}/referrals/${referralUserId}`,
|
||||
);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// Get referrals
|
||||
getReferrals: async (userId: number, offset = 0, limit = 50): Promise<UsersListResponse> => {
|
||||
const response = await apiClient.get(`/cabinet/admin/users/${userId}/referrals`, {
|
||||
|
||||
Reference in New Issue
Block a user