1use crate::upnp::UpnpSupport;
10use crate::{
11 connection_mode::ConnectionMode,
12 mode::{InputMode, Scene},
13 node_stats::NodeStats,
14};
15use ant_service_management::NodeServiceData;
16use serde::{Deserialize, Serialize};
17use std::path::PathBuf;
18use strum::Display;
19
20#[derive(Debug, Clone, PartialEq, Serialize, Display, Deserialize)]
21pub enum Action {
22 StatusActions(StatusActions),
23 OptionsActions(OptionsActions),
24
25 SwitchScene(Scene),
26 SwitchInputMode(InputMode),
27
28 StoreStorageDrive(PathBuf, String),
29 StoreConnectionMode(ConnectionMode),
30 StorePortRange(u32, u32),
31 StoreRewardsAddress(String),
32 StoreNodesToStart(usize),
33
34 SetUpnpSupport(UpnpSupport),
35
36 UpgradeLaunchpadActions(UpgradeLaunchpadActions),
37
38 Tick,
39 Render,
40 Resize(u16, u16),
41 Suspend,
42 Resume,
43 Quit,
44 Refresh,
45 Error(String),
46 Help,
47 Noop,
48}
49
50#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
51pub enum StatusActions {
52 AddNode,
53 StartNodes,
54 StopNodes,
55 RemoveNodes,
56 StartStopNode,
57 StartNodesCompleted {
58 service_name: String,
59 all_nodes_data: Vec<NodeServiceData>,
60 is_nat_status_determined: bool,
61 },
62 StopNodesCompleted {
63 service_name: String,
64 all_nodes_data: Vec<NodeServiceData>,
65 is_nat_status_determined: bool,
66 },
67 ResetNodesCompleted {
68 trigger_start_node: bool,
69 all_nodes_data: Vec<NodeServiceData>,
70 is_nat_status_determined: bool,
71 },
72 RemoveNodesCompleted {
73 service_name: String,
74 all_nodes_data: Vec<NodeServiceData>,
75 is_nat_status_determined: bool,
76 },
77 AddNodesCompleted {
78 service_name: String,
79 all_nodes_data: Vec<NodeServiceData>,
80 is_nat_status_determined: bool,
81 },
82 UpdateNodesCompleted {
83 all_nodes_data: Vec<NodeServiceData>,
84 is_nat_status_determined: bool,
85 },
86 NatDetectionStarted,
87 SuccessfullyDetectedNatStatus,
88 ErrorWhileRunningNatDetection,
89 ErrorLoadingNodeRegistry {
90 raw_error: String,
91 },
92 ErrorGettingNodeRegistryPath {
93 raw_error: String,
94 },
95 ErrorScalingUpNodes {
96 raw_error: String,
97 },
98 ErrorResettingNodes {
99 raw_error: String,
100 },
101 ErrorUpdatingNodes {
102 raw_error: String,
103 },
104 ErrorAddingNodes {
105 raw_error: String,
106 },
107 ErrorStartingNodes {
108 services: Vec<String>,
109 raw_error: String,
110 },
111 ErrorStoppingNodes {
112 services: Vec<String>,
113 raw_error: String,
114 },
115 ErrorRemovingNodes {
116 services: Vec<String>,
117 raw_error: String,
118 },
119 NodesStatsObtained(NodeStats),
120
121 TriggerManageNodes,
122 TriggerRewardsAddress,
123 TriggerNodeLogs,
124 TriggerRemoveNode,
125
126 PreviousTableItem,
127 NextTableItem,
128}
129
130#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
131pub enum OptionsActions {
132 ResetNodes,
133 UpdateNodes,
134
135 TriggerChangeDrive,
136 TriggerChangeConnectionMode,
137 TriggerChangePortRange,
138 TriggerRewardsAddress,
139 TriggerUpdateNodes,
140 TriggerResetNodes,
141 TriggerAccessLogs,
142 UpdateConnectionMode(ConnectionMode),
143 UpdatePortRange(u32, u32),
144 UpdateRewardsAddress(String),
145 UpdateStorageDrive(PathBuf, String),
146}
147
148#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
149pub enum UpgradeLaunchpadActions {
150 UpdateAvailable {
151 current_version: String,
152 latest_version: String,
153 },
154}