1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct PullreqModel {
17 #[serde(
18 rename = "activity_seq",
19 default,
20 with = "::serde_with::rust::double_option",
21 skip_serializing_if = "Option::is_none"
22 )]
23 pub activity_seq: Option<Option<i64>>,
24 #[serde(
25 rename = "closed",
26 default,
27 with = "::serde_with::rust::double_option",
28 skip_serializing_if = "Option::is_none"
29 )]
30 pub closed: Option<Option<i64>>,
31 #[serde(rename = "comment_count")]
32 pub comment_count: i64,
33 #[serde(
34 rename = "commit_count",
35 default,
36 with = "::serde_with::rust::double_option",
37 skip_serializing_if = "Option::is_none"
38 )]
39 pub commit_count: Option<Option<i64>>,
40 #[serde(rename = "created")]
41 pub created: i64,
42 #[serde(rename = "created_by")]
43 pub created_by: i64,
44 #[serde(rename = "description")]
45 pub description: String,
46 #[serde(rename = "edited")]
47 pub edited: i64,
48 #[serde(
49 rename = "file_count",
50 default,
51 with = "::serde_with::rust::double_option",
52 skip_serializing_if = "Option::is_none"
53 )]
54 pub file_count: Option<Option<i64>>,
55 #[serde(rename = "id")]
56 pub id: i64,
57 #[serde(rename = "is_draft")]
58 pub is_draft: bool,
59 #[serde(rename = "merge_base_sha")]
60 pub merge_base_sha: String,
61 #[serde(rename = "merge_check_status")]
62 pub merge_check_status: models::PullreqMergeCheckStatus,
63 #[serde(
64 rename = "merge_conflicts",
65 default,
66 with = "::serde_with::rust::double_option",
67 skip_serializing_if = "Option::is_none"
68 )]
69 pub merge_conflicts: Option<Option<Vec<String>>>,
70 #[serde(
71 rename = "merge_method",
72 default,
73 with = "::serde_with::rust::double_option",
74 skip_serializing_if = "Option::is_none"
75 )]
76 pub merge_method: Option<Option<models::PullreqMergeMethod>>,
77 #[serde(
78 rename = "merge_sha",
79 default,
80 with = "::serde_with::rust::double_option",
81 skip_serializing_if = "Option::is_none"
82 )]
83 pub merge_sha: Option<Option<String>>,
84 #[serde(
85 rename = "merge_target_sha",
86 default,
87 with = "::serde_with::rust::double_option",
88 skip_serializing_if = "Option::is_none"
89 )]
90 pub merge_target_sha: Option<Option<String>>,
91 #[serde(
92 rename = "merged",
93 default,
94 with = "::serde_with::rust::double_option",
95 skip_serializing_if = "Option::is_none"
96 )]
97 pub merged: Option<Option<i64>>,
98 #[serde(
99 rename = "merged_by",
100 default,
101 with = "::serde_with::rust::double_option",
102 skip_serializing_if = "Option::is_none"
103 )]
104 pub merged_by: Option<Option<i64>>,
105 #[serde(rename = "number")]
106 pub number: i64,
107 #[serde(rename = "source_branch")]
108 pub source_branch: String,
109 #[serde(rename = "source_repo_id")]
110 pub source_repo_id: i64,
111 #[serde(rename = "source_sha")]
112 pub source_sha: String,
113 #[serde(rename = "state")]
114 pub state: models::PullreqState,
115 #[serde(rename = "target_branch")]
116 pub target_branch: String,
117 #[serde(rename = "target_repo_id")]
118 pub target_repo_id: i64,
119 #[serde(rename = "title")]
120 pub title: String,
121 #[serde(rename = "unresolved_count")]
122 pub unresolved_count: i64,
123 #[serde(rename = "updated")]
124 pub updated: i64,
125 #[serde(rename = "version")]
126 pub version: i64,
127}
128
129impl PullreqModel {
130 pub fn new(
131 comment_count: i64,
132 created: i64,
133 created_by: i64,
134 description: String,
135 edited: i64,
136 id: i64,
137 is_draft: bool,
138 merge_base_sha: String,
139 merge_check_status: models::PullreqMergeCheckStatus,
140 number: i64,
141 source_branch: String,
142 source_repo_id: i64,
143 source_sha: String,
144 state: models::PullreqState,
145 target_branch: String,
146 target_repo_id: i64,
147 title: String,
148 unresolved_count: i64,
149 updated: i64,
150 version: i64,
151 ) -> PullreqModel {
152 PullreqModel {
153 activity_seq: None,
154 closed: None,
155 comment_count,
156 commit_count: None,
157 created,
158 created_by,
159 description,
160 edited,
161 file_count: None,
162 id,
163 is_draft,
164 merge_base_sha,
165 merge_check_status,
166 merge_conflicts: None,
167 merge_method: None,
168 merge_sha: None,
169 merge_target_sha: None,
170 merged: None,
171 merged_by: None,
172 number,
173 source_branch,
174 source_repo_id,
175 source_sha,
176 state,
177 target_branch,
178 target_repo_id,
179 title,
180 unresolved_count,
181 updated,
182 version,
183 }
184 }
185}