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 RegistryRefreshed {
121 all_nodes_data: Vec<NodeServiceData>,
122 is_nat_status_determined: bool,
123 },
124
125 TriggerManageNodes,
126 TriggerRewardsAddress,
127 TriggerNodeLogs,
128 TriggerRemoveNode,
129
130 PreviousTableItem,
131 NextTableItem,
132}
133
134#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
135pub enum OptionsActions {
136 ResetNodes,
137 UpdateNodes,
138
139 TriggerChangeDrive,
140 TriggerChangeConnectionMode,
141 TriggerChangePortRange,
142 TriggerRewardsAddress,
143 TriggerUpdateNodes,
144 TriggerResetNodes,
145 TriggerAccessLogs,
146 UpdateConnectionMode(ConnectionMode),
147 UpdatePortRange(u32, u32),
148 UpdateRewardsAddress(String),
149 UpdateStorageDrive(PathBuf, String),
150}
151
152#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
153pub enum UpgradeLaunchpadActions {
154 UpdateAvailable {
155 current_version: String,
156 latest_version: String,
157 },
158}