import { apiClient } from './client' import { useAuthStore } from '@/stores/auth' export interface FactorItem { name: string category: string } export interface FactorSubmit { symbols: string[] factor_names: string[] start: string end: string } export async function getFactors(): Promise { const { data } = await apiClient.get<{ factors: FactorItem[] }>('/factor/list') return data.factors } export async function submitFactor(req: FactorSubmit): Promise { const { data } = await apiClient.post<{ task_id: string }>('/factor/analyze', req) return data.task_id } export async function getIcSummary(taskId: string): Promise> { const { data } = await apiClient.get<{ ic_summary: Record }>(`/task/${taskId}/ic-summary`) return data.ic_summary } /** Report URL with token in query (iframe can't set Authorization header). */ export function reportUrl(taskId: string, factor: string): string { const auth = useAuthStore() return `/api/v1/task/${taskId}/report/${factor}?token=${encodeURIComponent(auth.token ?? '')}` }