import type { Strategy, StrategyConfig, } from '../../types' import { API_BASE, httpClient } from './helpers' export const strategyApi = { async getStrategies(): Promise { const result = await httpClient.get<{ strategies: Strategy[] }>(`${API_BASE}/strategies`) if (!result.success) throw new Error('获取策略列表失败') const strategies = result.data?.strategies return Array.isArray(strategies) ? strategies : [] }, async getStrategy(strategyId: string): Promise { const result = await httpClient.get(`${API_BASE}/strategies/${strategyId}`) if (!result.success) throw new Error('获取策略失败') return result.data! }, async getActiveStrategy(): Promise { const result = await httpClient.get(`${API_BASE}/strategies/active`) if (!result.success) throw new Error('获取激活策略失败') return result.data! }, async getDefaultStrategyConfig(): Promise { const result = await httpClient.get(`${API_BASE}/strategies/default-config`) if (!result.success) throw new Error('获取默认策略配置失败') return result.data! }, async createStrategy(data: { name: string description: string config: StrategyConfig }): Promise { const result = await httpClient.post(`${API_BASE}/strategies`, data) if (!result.success) throw new Error('创建策略失败') return result.data! }, async updateStrategy( strategyId: string, data: { name?: string description?: string config?: StrategyConfig } ): Promise { const result = await httpClient.put(`${API_BASE}/strategies/${strategyId}`, data) if (!result.success) throw new Error('更新策略失败') return result.data! }, async deleteStrategy(strategyId: string): Promise { const result = await httpClient.delete(`${API_BASE}/strategies/${strategyId}`) if (!result.success) throw new Error('删除策略失败') }, async activateStrategy(strategyId: string): Promise { const result = await httpClient.post(`${API_BASE}/strategies/${strategyId}/activate`) if (!result.success) throw new Error('激活策略失败') return result.data! }, async duplicateStrategy(strategyId: string): Promise { const result = await httpClient.post(`${API_BASE}/strategies/${strategyId}/duplicate`) if (!result.success) throw new Error('复制策略失败') return result.data! }, }