1
2use serde::{
3 Deserialize,
4 Serialize,
5};
6
7use crate::{
8 enums::*,
9 event::*,
10 phase_group::*,
11 set::*,
12};
13
14#[derive(Clone, Default, Serialize, Deserialize)]
21pub struct GGPhase {
22
23 #[serde(rename(serialize = "bracketType", deserialize = "bracketType"))]
24 pub bracket_type: Option<i64>,
25 pub event: Option<Box<GGEvent>>,
26
27 #[serde(rename(serialize = "groupCount", deserialize = "groupCount"))]
28 pub group_count: Option<i64>,
29 pub id: Option<GGID>,
30
31 #[serde(rename(serialize = "isExhibition", deserialize = "isExhibition"))]
32 pub is_exhibition: Option<bool>,
33 pub name: Option<String>,
34
35 #[serde(rename(serialize = "numSeeds", deserialize = "numSeeds"))]
36 pub num_seeds: Option<i64>,
37
38 #[serde(rename(serialize = "phaseGroups", deserialize = "phaseGroups"))]
39 pub phase_groups: Option<GGPhaseGroupConnection>,
40
41 #[serde(rename(serialize = "phaseOrder", deserialize = "phaseOrder"))]
42 pub phase_order: Option<i64>,
43 pub sets: Option<GGSetConnection>,
45 pub state: Option<i64>,
46 }
49
50impl GGPhase {
51
52 pub fn bracket_type(&self) -> i64 {
56 let mut result: i64 = 0;
57 if self.bracket_type.is_some() {
58 result = self.bracket_type.unwrap().clone();
59 }
60 return result;
61 }
62
63 pub fn event(&self) -> GGEvent {
67 let mut result: GGEvent = Default::default();
68 if self.event.is_some() {
69 result = *self.event.as_ref().unwrap().clone();
70 }
71 return result;
72 }
73
74 pub fn group_count(&self) -> i64 {
78 let mut result: i64 = 0;
79 if self.group_count.is_some() {
80 result = self.group_count.unwrap().clone();
81 }
82 return result;
83 }
84
85 pub fn id(&self) -> GGID {
89 let mut result: GGID = GGID::Int(0);
90 if self.id.is_some() {
91 match self.id.clone().unwrap() {
92 GGID::Int(_) => result = self.id.as_ref().unwrap().clone(),
93 GGID::String(_) => result = self.id.as_ref().unwrap().clone(),
94 };
95 }
96 return result;
97 }
98
99 pub fn is_exhibition(&self) -> bool {
103 let mut result: bool = false;
104 if self.is_exhibition.is_some() {
105 result = self.is_exhibition.unwrap().clone();
106 }
107 return result;
108 }
109
110 pub fn name(&self) -> String {
114 let mut result: String = "".to_string();
115 if self.name.is_some() {
116 result = self.name.clone().unwrap().clone();
117 }
118 return result;
119 }
120
121 pub fn num_seeds(&self) -> i64 {
125 let mut result: i64 = 0;
126 if self.num_seeds.is_some() {
127 result = self.num_seeds.unwrap().clone();
128 }
129 return result;
130 }
131
132 pub fn phase_groups(&self) -> Vec<GGPhaseGroup> {
136 let mut result: Vec<GGPhaseGroup> = Vec::new();
137 if self.phase_groups.is_some() {
138 for phase_group in &self.phase_groups.as_ref().unwrap().nodes {
139 result.push(phase_group.clone());
140 }
141 }
142 return result;
143 }
144
145 pub fn phase_order(&self) -> i64 {
149 let mut result: i64 = 0;
150 if self.phase_order.is_some() {
151 result = self.phase_order.unwrap().clone();
152 }
153 return result;
154 }
155
156 pub fn sets(&self) -> Vec<GGSet> {
160 let mut result: Vec<GGSet> = Vec::new();
161 if self.sets.is_some() {
162 for set in &self.sets.as_ref().unwrap().nodes {
163 result.push(set.clone());
164 }
165 }
166 return result;
167 }
168
169 pub fn state(&self) -> i64 {
173 let mut result: i64 = 0;
174 if self.state.is_some() {
175 result = self.state.unwrap().clone();
176 }
177 return result;
178 }
179
180}