1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Ws {
17 #[serde(rename = "timestamp")]
19 pub timestamp: String,
20 #[serde(rename = "alerts")]
21 pub alerts: Vec<models::AlertsInner>,
22 #[serde(rename = "arbitration")]
23 pub arbitration: Box<models::Arbitration>,
24 #[serde(rename = "archonHunt")]
25 pub archon_hunt: Box<models::ArchonHunt>,
26 #[serde(rename = "cambionCycle")]
27 pub cambion_cycle: Box<models::CambionCycle>,
28 #[serde(rename = "cetusCycle")]
29 pub cetus_cycle: Box<models::CetusCycle>,
30 #[serde(rename = "conclaveChallenges")]
31 pub conclave_challenges: Vec<models::ConclaveChallengesInner>,
32 #[serde(rename = "constructionProgress")]
33 pub construction_progress: Box<models::Construction>,
34 #[serde(rename = "dailyDeals")]
35 pub daily_deals: Vec<models::DailyDealsInner>,
36 #[serde(rename = "darkSectors", skip_serializing_if = "Option::is_none")]
37 pub dark_sectors: Option<Vec<models::DarkSectorsInner>>,
38 #[serde(rename = "deepArchimedia", skip_serializing_if = "Option::is_none")]
39 pub deep_archimedia: Option<Box<models::DeepArchimedea>>,
40 #[serde(rename = "earthCycle")]
41 pub earth_cycle: Box<models::EarthCycle>,
42 #[serde(rename = "events")]
43 pub events: Vec<models::Event>,
44 #[serde(rename = "fissures", deserialize_with = "Option::deserialize")]
45 pub fissures: Option<serde_json::Value>,
46 #[serde(rename = "flashSales")]
47 pub flash_sales: Box<models::FlashSales>,
48 #[serde(rename = "globalUpgrades")]
49 pub global_upgrades: Vec<models::GlobalUpgradesInner>,
50 #[serde(rename = "invasions")]
51 pub invasions: Vec<models::Invasion>,
52 #[serde(rename = "kuva", skip_serializing_if = "Option::is_none")]
53 pub kuva: Option<Vec<models::Arbitration>>,
54 #[serde(rename = "news")]
55 pub news: Vec<models::NewsInner>,
56 #[serde(rename = "nightwave", skip_serializing_if = "Option::is_none")]
57 pub nightwave: Option<Box<models::Nightwave>>,
58 #[serde(rename = "persistentEnemies")]
59 pub persistent_enemies: Vec<models::PersistentEnemiesInner>,
60 #[serde(rename = "sentientOutposts")]
61 pub sentient_outposts: Box<models::SentientOutposts>,
62 #[serde(rename = "simaris", skip_serializing_if = "Option::is_none")]
63 pub simaris: Option<Box<models::Simaris>>,
64 #[serde(rename = "sortie")]
65 pub sortie: Box<models::Sortie>,
66 #[serde(rename = "steelPath")]
67 pub steel_path: Box<models::SteelPath>,
68 #[serde(rename = "syndicateMissions")]
69 pub syndicate_missions: Vec<models::SyndicateMission>,
70 #[serde(rename = "vallisCycle")]
71 pub vallis_cycle: Box<models::VallisCycle>,
72 #[serde(rename = "voidTrader")]
73 pub void_trader: Box<models::VoidTrader>,
74}
75
76impl Ws {
77 pub fn new(timestamp: String, alerts: Vec<models::AlertsInner>, arbitration: models::Arbitration, archon_hunt: models::ArchonHunt, cambion_cycle: models::CambionCycle, cetus_cycle: models::CetusCycle, conclave_challenges: Vec<models::ConclaveChallengesInner>, construction_progress: models::Construction, daily_deals: Vec<models::DailyDealsInner>, earth_cycle: models::EarthCycle, events: Vec<models::Event>, fissures: Option<serde_json::Value>, flash_sales: models::FlashSales, global_upgrades: Vec<models::GlobalUpgradesInner>, invasions: Vec<models::Invasion>, news: Vec<models::NewsInner>, persistent_enemies: Vec<models::PersistentEnemiesInner>, sentient_outposts: models::SentientOutposts, sortie: models::Sortie, steel_path: models::SteelPath, syndicate_missions: Vec<models::SyndicateMission>, vallis_cycle: models::VallisCycle, void_trader: models::VoidTrader) -> Ws {
79 Ws {
80 timestamp,
81 alerts,
82 arbitration: Box::new(arbitration),
83 archon_hunt: Box::new(archon_hunt),
84 cambion_cycle: Box::new(cambion_cycle),
85 cetus_cycle: Box::new(cetus_cycle),
86 conclave_challenges,
87 construction_progress: Box::new(construction_progress),
88 daily_deals,
89 dark_sectors: None,
90 deep_archimedia: None,
91 earth_cycle: Box::new(earth_cycle),
92 events,
93 fissures,
94 flash_sales: Box::new(flash_sales),
95 global_upgrades,
96 invasions,
97 kuva: None,
98 news,
99 nightwave: None,
100 persistent_enemies,
101 sentient_outposts: Box::new(sentient_outposts),
102 simaris: None,
103 sortie: Box::new(sortie),
104 steel_path: Box::new(steel_path),
105 syndicate_missions,
106 vallis_cycle: Box::new(vallis_cycle),
107 void_trader: Box::new(void_trader),
108 }
109 }
110}
111