import type { StateCreator } from 'zustand'; import type { StrategyStatus } from '@/services/types'; interface TradingState { strategies: Record; positions: any[]; pnl: number; trades: any[]; updateStrategy: (strategy: StrategyStatus) => void; updatePositions: (positions: any[]) => void; updatePnl: (pnl: number) => void; addTrade: (trade: any) => void; setStrategies: (strategies: StrategyStatus[]) => void; } export const tradingSlice: StateCreator = (set) => ({ strategies: {}, positions: [], pnl: 0, trades: [], updateStrategy: (strategy) => set((state) => ({ strategies: { ...state.strategies, [strategy.strategy]: strategy }, })), updatePositions: (positions) => set({ positions }), updatePnl: (pnl) => set({ pnl }), addTrade: (trade) => set((state) => ({ trades: [trade, ...state.trades].slice(0, 100), })), setStrategies: (strategies) => set(() => { const strategyMap: Record = {}; strategies.forEach((s) => { strategyMap[s.strategy] = s; }); return { strategies: strategyMap }; }), });