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