mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
feat(sales-stats): вкладка «Оплаты» — success-rate и неудачные покупки
Новая вкладка в статистике продаж: - success-rate платежей (оплачено/создано) — общий + по каждому шлюзу с цветными барами (зелёный ≥90%, жёлтый ≥70%, красный ниже); - кол-во попыток оплат; - «Неудачные покупки» — внутренние откаты при ошибке покупки (сигнал надёжности, не возвраты). Данные из нового эндпоинта /payment-health. Шлюзы без активности не показываются. Карточки 1/3 (без сирот), адаптив. 4 локали.
This commit is contained in:
@@ -165,6 +165,21 @@ export interface DepositsStats {
|
||||
daily_by_method: DailyDepositByMethodItem[];
|
||||
}
|
||||
|
||||
export interface GatewaySuccessItem {
|
||||
method: string;
|
||||
total: number;
|
||||
paid: number;
|
||||
success_rate: number;
|
||||
}
|
||||
|
||||
export interface PaymentHealth {
|
||||
total_attempts: number;
|
||||
total_paid: number;
|
||||
success_rate: number;
|
||||
failed_purchases: number;
|
||||
by_gateway: GatewaySuccessItem[];
|
||||
}
|
||||
|
||||
// ============ API ============
|
||||
|
||||
export const salesStatsApi = {
|
||||
@@ -197,4 +212,9 @@ export const salesStatsApi = {
|
||||
const response = await apiClient.get('/cabinet/admin/stats/sales/deposits', { params });
|
||||
return response.data;
|
||||
},
|
||||
|
||||
getPaymentHealth: async (params: SalesStatsParams = {}): Promise<PaymentHealth> => {
|
||||
const response = await apiClient.get('/cabinet/admin/stats/sales/payment-health', { params });
|
||||
return response.data;
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user