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(rename = "merge_conflicts", skip_serializing_if = "Option::is_none")]
64 pub merge_conflicts: Option<Vec<String>>,
65 #[serde(
66 rename = "merge_method",
67 default,
68 with = "::serde_with::rust::double_option",
69 skip_serializing_if = "Option::is_none"
70 )]
71 pub merge_method: Option<Option<models::PullreqMergeMethod>>,
72 #[serde(
73 rename = "merge_sha",
74 default,
75 with = "::serde_with::rust::double_option",
76 skip_serializing_if = "Option::is_none"
77 )]
78 pub merge_sha: Option<Option<String>>,
79 #[serde(
80 rename = "merge_target_sha",
81 default,
82 with = "::serde_with::rust::double_option",
83 skip_serializing_if = "Option::is_none"
84 )]
85 pub merge_target_sha: Option<Option<String>>,
86 #[serde(
87 rename = "merged",
88 default,
89 with = "::serde_with::rust::double_option",
90 skip_serializing_if = "Option::is_none"
91 )]
92 pub merged: Option<Option<i64>>,
93 #[serde(
94 rename = "merged_by",
95 default,
96 with = "::serde_with::rust::double_option",
97 skip_serializing_if = "Option::is_none"
98 )]
99 pub merged_by: Option<Option<i64>>,
100 #[serde(rename = "number")]
101 pub number: i64,
102 #[serde(rename = "source_branch")]
103 pub source_branch: String,
104 #[serde(rename = "source_repo_id")]
105 pub source_repo_id: i64,
106 #[serde(rename = "source_sha")]
107 pub source_sha: String,
108 #[serde(rename = "state")]
109 pub state: models::PullreqState,
110 #[serde(rename = "target_branch")]
111 pub target_branch: String,
112 #[serde(rename = "target_repo_id")]
113 pub target_repo_id: i64,
114 #[serde(rename = "title")]
115 pub title: String,
116 #[serde(rename = "unresolved_count")]
117 pub unresolved_count: i64,
118 #[serde(rename = "updated")]
119 pub updated: i64,
120 #[serde(rename = "version")]
121 pub version: i64,
122}
123
124impl PullreqModel {
125 pub fn new(
126 comment_count: i64,
127 created: i64,
128 created_by: i64,
129 description: String,
130 edited: i64,
131 id: i64,
132 is_draft: bool,
133 merge_base_sha: String,
134 merge_check_status: models::PullreqMergeCheckStatus,
135 number: i64,
136 source_branch: String,
137 source_repo_id: i64,
138 source_sha: String,
139 state: models::PullreqState,
140 target_branch: String,
141 target_repo_id: i64,
142 title: String,
143 unresolved_count: i64,
144 updated: i64,
145 version: i64,
146 ) -> PullreqModel {
147 PullreqModel {
148 activity_seq: None,
149 closed: None,
150 comment_count,
151 commit_count: None,
152 created,
153 created_by,
154 description,
155 edited,
156 file_count: None,
157 id,
158 is_draft,
159 merge_base_sha,
160 merge_check_status,
161 merge_conflicts: None,
162 merge_method: None,
163 merge_sha: None,
164 merge_target_sha: None,
165 merged: None,
166 merged_by: None,
167 number,
168 source_branch,
169 source_repo_id,
170 source_sha,
171 state,
172 target_branch,
173 target_repo_id,
174 title,
175 unresolved_count,
176 updated,
177 version,
178 }
179 }
180}