1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct WorkflowModel {
17 #[serde(rename = "action")]
18 pub action: String,
19 #[serde(rename = "action_id")]
20 pub action_id: i64,
21 #[serde(
22 rename = "after_sha",
23 default,
24 with = "::serde_with::rust::double_option",
25 skip_serializing_if = "Option::is_none"
26 )]
27 pub after_sha: Option<Option<String>>,
28 #[serde(rename = "author_email")]
29 pub author_email: String,
30 #[serde(
31 rename = "author_id",
32 default,
33 with = "::serde_with::rust::double_option",
34 skip_serializing_if = "Option::is_none"
35 )]
36 pub author_id: Option<Option<i64>>,
37 #[serde(rename = "author_name")]
38 pub author_name: String,
39 #[serde(rename = "before_sha")]
40 pub before_sha: String,
41 #[serde(rename = "context", deserialize_with = "Option::deserialize")]
42 pub context: Option<serde_json::Value>,
43 #[serde(rename = "created")]
44 pub created: i64,
45 #[serde(rename = "created_by")]
46 pub created_by: i64,
47 #[serde(rename = "cron")]
48 pub cron: String,
49 #[serde(rename = "debug")]
50 pub debug: bool,
51 #[serde(rename = "deploy")]
52 pub deploy: String,
53 #[serde(rename = "deploy_id")]
54 pub deploy_id: i64,
55 #[serde(rename = "error")]
56 pub error: String,
57 #[serde(rename = "event")]
58 pub event: models::TriggerEvent,
59 #[serde(rename = "finished")]
60 pub finished: i64,
61 #[serde(rename = "id")]
62 pub id: i64,
63 #[serde(
64 rename = "inputs",
65 default,
66 with = "::serde_with::rust::double_option",
67 skip_serializing_if = "Option::is_none"
68 )]
69 pub inputs: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
70 #[serde(rename = "link")]
71 pub link: String,
72 #[serde(rename = "message")]
73 pub message: String,
74 #[serde(rename = "name")]
75 pub name: String,
76 #[serde(rename = "number")]
77 pub number: i64,
78 #[serde(rename = "params")]
79 pub params: std::collections::HashMap<String, serde_json::Value>,
80 #[serde(rename = "repo_id")]
81 pub repo_id: i64,
82 #[serde(
83 rename = "source_repo_id",
84 default,
85 with = "::serde_with::rust::double_option",
86 skip_serializing_if = "Option::is_none"
87 )]
88 pub source_repo_id: Option<Option<i64>>,
89 #[serde(
90 rename = "source_rev",
91 default,
92 with = "::serde_with::rust::double_option",
93 skip_serializing_if = "Option::is_none"
94 )]
95 pub source_rev: Option<Option<String>>,
96 #[serde(rename = "started")]
97 pub started: i64,
98 #[serde(rename = "status")]
99 pub status: models::CiStatus,
100 #[serde(rename = "target_rev")]
101 pub target_rev: String,
102 #[serde(rename = "title")]
103 pub title: String,
104 #[serde(rename = "updated")]
105 pub updated: i64,
106 #[serde(rename = "version")]
107 pub version: i64,
108 #[serde(rename = "yaml_provider")]
109 pub yaml_provider: models::WorkflowProvider,
110 #[serde(rename = "yaml_resolved")]
111 pub yaml_resolved: String,
112}
113
114impl WorkflowModel {
115 pub fn new(
116 action: String,
117 action_id: i64,
118 author_email: String,
119 author_name: String,
120 before_sha: String,
121 context: Option<serde_json::Value>,
122 created: i64,
123 created_by: i64,
124 cron: String,
125 debug: bool,
126 deploy: String,
127 deploy_id: i64,
128 error: String,
129 event: models::TriggerEvent,
130 finished: i64,
131 id: i64,
132 link: String,
133 message: String,
134 name: String,
135 number: i64,
136 params: std::collections::HashMap<String, serde_json::Value>,
137 repo_id: i64,
138 started: i64,
139 status: models::CiStatus,
140 target_rev: String,
141 title: String,
142 updated: i64,
143 version: i64,
144 yaml_provider: models::WorkflowProvider,
145 yaml_resolved: String,
146 ) -> WorkflowModel {
147 WorkflowModel {
148 action,
149 action_id,
150 after_sha: None,
151 author_email,
152 author_id: None,
153 author_name,
154 before_sha,
155 context,
156 created,
157 created_by,
158 cron,
159 debug,
160 deploy,
161 deploy_id,
162 error,
163 event,
164 finished,
165 id,
166 inputs: None,
167 link,
168 message,
169 name,
170 number,
171 params,
172 repo_id,
173 source_repo_id: None,
174 source_rev: None,
175 started,
176 status,
177 target_rev,
178 title,
179 updated,
180 version,
181 yaml_provider,
182 yaml_resolved,
183 }
184 }
185}