1use std::collections::HashMap;
2
3use crate::model::candle::Candle;
4use crate::model::signal::Signal;
5use crate::model::tick::Tick;
6use crate::order_manager::{OrderHistorySnapshot, OrderUpdate};
7use crate::risk_module::RateBudgetSnapshot;
8
9#[derive(Debug, Clone)]
10pub enum WsConnectionStatus {
11 Connected,
12 Disconnected,
13 Reconnecting { attempt: u32, delay_ms: u64 },
14}
15
16#[derive(Debug, Clone)]
17pub enum AppEvent {
18 MarketTick(Tick),
19 StrategySignal(Signal),
20 StrategyState {
21 fast_sma: Option<f64>,
22 slow_sma: Option<f64>,
23 },
24 OrderUpdate(OrderUpdate),
25 WsStatus(WsConnectionStatus),
26 HistoricalCandles {
27 candles: Vec<Candle>,
28 interval_ms: u64,
29 interval: String,
30 },
31 BalanceUpdate(HashMap<String, f64>),
32 OrderHistoryUpdate(OrderHistorySnapshot),
33 RiskRateSnapshot {
34 global: RateBudgetSnapshot,
35 orders: RateBudgetSnapshot,
36 account: RateBudgetSnapshot,
37 market_data: RateBudgetSnapshot,
38 },
39 LogMessage(String),
40 Error(String),
41}