feat: add BrokerAnalyticsDto type, API function, and hook

This commit is contained in:
Sergey Krylov 2026-06-24 09:44:35 +03:00
parent abf3676ba1
commit 3f0fb42d99
5 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,10 @@
import type { ApiResponseMeta, BrokerAnalytics } from '@/shared/api'
import { request } from '@/shared/api/kyClient'
export function getBrokerAnalytics(
accountId: string,
): Promise<{ data: BrokerAnalytics; meta: ApiResponseMeta }> {
return request<BrokerAnalytics>(
`/api/v1/broker/accounts/${encodeURIComponent(accountId)}/analytics`,
)
}

View File

@ -0,0 +1,2 @@
export { getBrokerAnalytics } from './api/brokerAnalyticsApi'
export { useBrokerAnalytics } from './model/useBrokerAnalytics'

View File

@ -0,0 +1,14 @@
import { useQuery } from '@tanstack/react-query'
import type { BrokerAnalytics } from '@/shared/api'
import { getBrokerAnalytics } from '../api/brokerAnalyticsApi'
export function useBrokerAnalytics(accountId: string | undefined) {
return useQuery<BrokerAnalytics>({
queryKey: ['broker', 'analytics', accountId],
enabled: Boolean(accountId),
queryFn: async () => (await getBrokerAnalytics(accountId!)).data,
staleTime: 300_000,
retry: 2,
refetchOnWindowFocus: false,
})
}

View File

@ -60,3 +60,6 @@ export type BrokerOperationCategory =
export type BrokerEventItem = components['schemas']['BrokerEventItemDto'] export type BrokerEventItem = components['schemas']['BrokerEventItemDto']
export type BrokerEventsData = components['schemas']['BrokerEventsDataDto'] export type BrokerEventsData = components['schemas']['BrokerEventsDataDto']
export type BrokerEventsSummary = components['schemas']['BrokerEventsSummaryDto'] export type BrokerEventsSummary = components['schemas']['BrokerEventsSummaryDto']
// Broker analytics
export type BrokerAnalytics = components['schemas']['BrokerAnalyticsDto']

View File

@ -1193,6 +1193,16 @@ export interface components {
actualCouponsTotal: number actualCouponsTotal: number
actualPrincipalRepaymentTotal: number actualPrincipalRepaymentTotal: number
} }
BrokerAnalyticsDto: {
totalDeposits: number
totalWithdrawn: number
netInvested: number
totalDividends: number
totalCoupons: number
totalReceived: number
totalReturnPercent: number | null
currency: string
}
BrokerEventsDataDto: { BrokerEventsDataDto: {
items: components['schemas']['BrokerEventItemDto'][] items: components['schemas']['BrokerEventItemDto'][]
summary: components['schemas']['BrokerEventsSummaryDto'] summary: components['schemas']['BrokerEventsSummaryDto']