import request, { type RequestClient } from '@/utils/request'; import type { components } from '@/api/generated/schema'; export type SectorRankingsResponse = components['schemas']['SectorRankingsResponseDto']; export type CapitalFlowResponse = components['schemas']['CapitalFlowResponseDto']; export type TurnoverTrendResponse = components['schemas']['TurnoverTrendResponseDto']; export interface SectorRankingsQuery { category: 'industry' | 'concept' | 'board'; sort: 'rise' | 'fall' | 'turnover'; limit: number; } export interface CapitalFlowQuery { category: 'industry' | 'concept' | 'board'; sort: 'inflow' | 'outflow'; limit: number; } export interface TurnoverTrendQuery { interval: '5' | '15'; tradeDate?: string; } /** 市场结构请求只调用固定的 Nest 路径,页面不感知 AKTools/TDX 地址。 */ export function createMarketStructureApi(requestClient: RequestClient = request) { return { getSectorRankings: (params: SectorRankingsQuery) => requestClient({ method: 'get', url: '/api/v1/market-overview/sector-rankings', params, }), getCapitalFlow: (params: CapitalFlowQuery) => requestClient({ method: 'get', url: '/api/v1/market-overview/capital-flow', params, }), getTurnoverTrend: (params: TurnoverTrendQuery) => requestClient({ method: 'get', url: '/api/v1/market-overview/turnover-trend', params, }), }; } const marketStructureApi = createMarketStructureApi(); export default marketStructureApi;