import type { PositionMetrics } from '@/services/api';
import type { StrategyMode } from '@/components/StrategyModeSelector';
import type { SwingPosition } from '@/components/MultiDayPositionTracker';
import type { NewsEvent } from '@/components/NewsEventTracker';
import type { Trade as AdvancedMetricsTrade } from '@/components/AdvancedMetricsDashboard';
import type { TradeDatasetSource } from '@/hooks/useAdvancedTradeMetrics';

export interface TradingPlan {
  date: string;
  bias: 'BULLISH' | 'BEARISH' | 'NEUTRAL';
  strategyMode: StrategyMode;
  dailyTarget: number;
  maxLoss: number;
  entryZone: { min: number; max: number };
  targetPrice: number;
  stopLoss: number;
  keyLevels: {
    support: number[];
    resistance: number[];
  };
  tradingNotes: string;
  maxTrades: number;
  actualTrades: number;
  actualPnL: number;
  planFollowed: boolean;
  contextMetrics: PositionMetrics | null;
  
  // Phase 3: Swing Trading Features
  swingPositions?: SwingPosition[];
  newsEvents?: NewsEvent[];
  trendConfirmed?: boolean;
}

export interface DailyTradingPlanProps {
  currentPrice: number;
  onPlanUpdate?: (plan: TradingPlan) => void;
  openRouterReady?: boolean;
  openRouterMessage?: string;
  advancedTrades?: AdvancedMetricsTrade[];
  advancedTradesSource?: TradeDatasetSource;
}
