use crate::upnp::UpnpSupport;
use crate::{
connection_mode::ConnectionMode,
mode::{InputMode, Scene},
node_stats::NodeStats,
};
use ant_service_management::NodeServiceData;
use serde::{Deserialize, Serialize};
use std::path::PathBuf;
use strum::Display;
#[derive(Debug, Clone, PartialEq, Serialize, Display, Deserialize)]
pub enum Action {
StatusActions(StatusActions),
OptionsActions(OptionsActions),
SwitchScene(Scene),
SwitchInputMode(InputMode),
StoreStorageDrive(PathBuf, String),
StoreConnectionMode(ConnectionMode),
StorePortRange(u32, u32),
StoreRewardsAddress(String),
StoreNodesToStart(usize),
SetUpnpSupport(UpnpSupport),
UpgradeLaunchpadActions(UpgradeLaunchpadActions),
Tick,
Render,
Resize(u16, u16),
Suspend,
Resume,
Quit,
Refresh,
Error(String),
Help,
Noop,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum StatusActions {
AddNode,
StartNodes,
StopNodes,
RemoveNodes,
StartStopNode,
StartNodesCompleted {
service_name: String,
all_nodes_data: Vec<NodeServiceData>,
is_nat_status_determined: bool,
},
StopNodesCompleted {
service_name: String,
all_nodes_data: Vec<NodeServiceData>,
is_nat_status_determined: bool,
},
ResetNodesCompleted {
trigger_start_node: bool,
all_nodes_data: Vec<NodeServiceData>,
is_nat_status_determined: bool,
},
RemoveNodesCompleted {
service_name: String,
all_nodes_data: Vec<NodeServiceData>,
is_nat_status_determined: bool,
},
AddNodesCompleted {
service_name: String,
all_nodes_data: Vec<NodeServiceData>,
is_nat_status_determined: bool,
},
UpdateNodesCompleted {
all_nodes_data: Vec<NodeServiceData>,
is_nat_status_determined: bool,
},
NatDetectionStarted,
SuccessfullyDetectedNatStatus,
ErrorWhileRunningNatDetection,
ErrorLoadingNodeRegistry {
raw_error: String,
},
ErrorGettingNodeRegistryPath {
raw_error: String,
},
ErrorScalingUpNodes {
raw_error: String,
},
ErrorResettingNodes {
raw_error: String,
},
ErrorUpdatingNodes {
raw_error: String,
},
ErrorAddingNodes {
raw_error: String,
},
ErrorStartingNodes {
services: Vec<String>,
raw_error: String,
},
ErrorStoppingNodes {
services: Vec<String>,
raw_error: String,
},
ErrorRemovingNodes {
services: Vec<String>,
raw_error: String,
},
NodesStatsObtained(NodeStats),
RegistryRefreshed {
all_nodes_data: Vec<NodeServiceData>,
is_nat_status_determined: bool,
},
TriggerManageNodes,
TriggerRewardsAddress,
TriggerNodeLogs,
TriggerRemoveNode,
PreviousTableItem,
NextTableItem,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
pub enum OptionsActions {
ResetNodes,
UpdateNodes,
TriggerChangeDrive,
TriggerChangeConnectionMode,
TriggerChangePortRange,
TriggerRewardsAddress,
TriggerUpdateNodes,
TriggerResetNodes,
TriggerAccessLogs,
UpdateConnectionMode(ConnectionMode),
UpdatePortRange(u32, u32),
UpdateRewardsAddress(String),
UpdateStorageDrive(PathBuf, String),
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
pub enum UpgradeLaunchpadActions {
UpdateAvailable {
current_version: String,
latest_version: String,
},
}