1use serde::{Deserialize, Serialize};
2use serde_json::Number;
3
4#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
5pub struct BoardMemberCollectionSuccess {
6 pub board_id: String,
7 pub members: Vec<BoardDetailMember>,
8}
9
10#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
11pub struct BoardMemberMutationSuccess {
12 pub board_id: String,
13 pub user_id: String,
14 pub action: super::MembershipAction,
15 pub boards: Vec<BoardSummary>,
16}
17
18#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
19#[serde(rename_all = "snake_case")]
20pub enum BoardMemberSubmittedField {
21 Role,
22 IsAdmin,
23 IsNoComments,
24 IsCommentOnly,
25 IsWorker,
26 IsNormalAssignedOnly,
27 IsCommentAssignedOnly,
28 IsReadOnly,
29 IsReadAssignedOnly,
30}
31
32#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
33pub struct BoardMemberUpdateSuccess {
34 pub board_id: String,
35 pub user_id: String,
36 pub affected_documents: u64,
37 pub submitted_fields: Vec<BoardMemberSubmittedField>,
38}
39
40#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
41pub struct BoardSummary {
42 pub board_id: String,
43 pub title: String,
44}
45
46pub type UserBoardSummary = BoardSummary;
47
48#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
49#[serde(rename_all = "snake_case")]
50pub struct BoardDetailMember {
51 pub user_id: String,
52 pub is_admin: bool,
53 pub is_active: bool,
54 pub is_no_comments: Option<bool>,
55 pub is_comment_only: Option<bool>,
56 pub is_worker: Option<bool>,
57 pub is_normal_assigned_only: Option<bool>,
58 pub is_comment_assigned_only: Option<bool>,
59 pub is_read_only: Option<bool>,
60 pub is_read_assigned_only: Option<bool>,
61}
62
63#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
64#[serde(rename_all = "snake_case")]
65pub struct BoardDetailWatcher {
66 pub user_id: String,
67 pub level: String,
68}
69
70#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
71#[serde(rename_all = "snake_case")]
72pub struct BoardDetailLabel {
73 pub label_id: String,
74 pub name: Option<String>,
75 pub color: String,
76}
77
78#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
79#[serde(rename_all = "snake_case")]
80pub struct BoardDetailOrganization {
81 pub org_id: String,
82 pub org_display_name: String,
83 pub is_active: bool,
84}
85
86#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
87#[serde(rename_all = "snake_case")]
88pub struct BoardDetailTeam {
89 pub team_id: String,
90 pub team_display_name: String,
91 pub is_active: bool,
92}
93
94#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
95#[serde(rename_all = "snake_case")]
96pub struct BoardDetailDomain {
97 pub domain: String,
98 pub is_active: bool,
99}
100
101#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
102#[serde(rename_all = "snake_case")]
103pub struct BoardDetail {
104 pub board_id: String,
105 pub title: String,
106 pub slug: Option<String>,
107 pub archived: Option<bool>,
108 pub archived_at: Option<String>,
109 pub created_at: Option<String>,
110 pub modified_at: Option<String>,
111 pub stars: Option<Number>,
112 #[serde(default)]
113 pub labels: Vec<BoardDetailLabel>,
114 #[serde(default)]
115 pub members: Vec<BoardDetailMember>,
116 #[serde(default)]
117 pub watchers: Vec<BoardDetailWatcher>,
118 pub permission: Option<String>,
119 #[serde(default)]
120 pub orgs: Vec<BoardDetailOrganization>,
121 #[serde(default)]
122 pub teams: Vec<BoardDetailTeam>,
123 #[serde(default)]
124 pub domains: Vec<BoardDetailDomain>,
125 #[serde(default)]
126 pub import_usernames: Vec<String>,
127 pub color: Option<String>,
128 #[serde(default)]
129 pub custom_theme_colors: Vec<String>,
130 pub background_image_url: Option<String>,
131 pub background_image_id: Option<String>,
132 pub allows_card_counter_list: Option<bool>,
133 pub card_aging: Option<bool>,
134 pub show_dependencies: Option<bool>,
135 pub card_aging_days1: Option<Number>,
136 pub card_aging_days2: Option<Number>,
137 pub card_aging_days3: Option<Number>,
138 pub allows_board_member_list: Option<bool>,
139 pub description: Option<String>,
140 pub subtasks_default_board_id: Option<String>,
141 pub migration_version: Option<Number>,
142 pub subtasks_default_list_id: Option<String>,
143 pub date_settings_default_board_id: Option<String>,
144 pub date_settings_default_list_id: Option<String>,
145 pub allows_subtasks: Option<bool>,
146 pub allows_subtasks_on_minicard: Option<bool>,
147 pub allows_attachments: Option<bool>,
148 pub allows_attachments_on_minicard: Option<bool>,
149 pub allows_checklists: Option<bool>,
150 pub allows_checklists_on_minicard: Option<bool>,
151 pub allows_custom_fields: Option<bool>,
152 pub allows_custom_fields_on_minicard: Option<bool>,
153 pub allows_checklist_count_badge_on_minicard: Option<bool>,
154 pub allows_comments: Option<bool>,
155 pub allows_description_title: Option<bool>,
156 pub allows_description_title_on_minicard: Option<bool>,
157 pub allows_description_text: Option<bool>,
158 pub allows_description_text_on_minicard: Option<bool>,
159 pub allows_cover_attachment_on_minicard: Option<bool>,
160 pub allows_cover_attachment_on_card: Option<bool>,
161 pub allows_badge_attachment_on_minicard: Option<bool>,
162 pub allows_attachment_count_on_card: Option<bool>,
163 pub allows_checklist_count_badge_on_card: Option<bool>,
164 pub allows_card_sorting_by_number_on_minicard: Option<bool>,
165 pub allows_card_number: Option<bool>,
166 pub allows_card_number_on_minicard: Option<bool>,
167 pub allows_activities: Option<bool>,
168 pub allows_labels: Option<bool>,
169 pub allows_labels_on_minicard: Option<bool>,
170 pub allows_creator: Option<bool>,
171 pub allows_creator_on_minicard: Option<bool>,
172 pub allows_assignee: Option<bool>,
173 pub allows_assignee_on_minicard: Option<bool>,
174 pub allows_members: Option<bool>,
175 pub allows_members_on_minicard: Option<bool>,
176 pub allows_requested_by: Option<bool>,
177 pub allows_requested_by_on_minicard: Option<bool>,
178 pub allows_card_sorting_by_number: Option<bool>,
179 pub allows_show_lists: Option<bool>,
180 pub allows_assigned_by: Option<bool>,
181 pub allows_assigned_by_on_minicard: Option<bool>,
182 pub allows_show_lists_on_minicard: Option<bool>,
183 pub allows_checklist_at_minicard: Option<bool>,
184 pub allows_received_date: Option<bool>,
185 pub restrict_comment_editing: Option<bool>,
186 pub allows_personal_list_width: Option<bool>,
187 pub auto_width: Option<bool>,
188 pub allows_received_date_on_minicard: Option<bool>,
189 pub allows_start_date: Option<bool>,
190 pub allows_start_date_on_minicard: Option<bool>,
191 pub allows_end_date: Option<bool>,
192 pub allows_end_date_on_minicard: Option<bool>,
193 pub allows_due_date: Option<bool>,
194 pub allows_due_date_on_minicard: Option<bool>,
195 pub allows_due_complete: Option<bool>,
196 pub allows_due_complete_on_minicard: Option<bool>,
197 pub present_parent_task: Option<String>,
198 pub received_at: Option<String>,
199 pub start_at: Option<String>,
200 pub due_at: Option<String>,
201 pub end_at: Option<String>,
202 pub spent_time: Option<Number>,
203 pub is_overtime: Option<bool>,
204 pub board_type: Option<String>,
205 pub sort: Option<Number>,
206 pub show_activities: Option<bool>,
207}
208
209#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
210#[serde(rename_all = "snake_case")]
211pub enum BoardListScope {
212 Active,
213 Public,
214}
215
216#[derive(Debug, Eq, PartialEq, Serialize)]
217pub struct BoardListSuccess {
218 pub scope: BoardListScope,
219 pub boards: Vec<BoardSummary>,
220}
221
222#[derive(Debug, Eq, PartialEq, Serialize)]
223pub struct BoardCountSuccess {
224 pub private: u64,
225 pub public: u64,
226}
227
228#[derive(Debug, Eq, PartialEq, Serialize)]
229pub struct BoardCreateSuccess {
230 pub board_id: String,
231 pub default_swimlane_id: String,
232}
233
234#[derive(Debug, Eq, PartialEq, Serialize)]
235pub struct BoardRenameSuccess {
236 pub board_id: String,
237 pub title: String,
238}
239
240#[derive(Debug, Eq, PartialEq, Serialize)]
241pub struct BoardDeleteSuccess {
242 pub board_id: String,
243 pub deleted: bool,
244}
245
246#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
247pub struct BoardLabelCollection {
248 pub board_id: String,
249 pub labels: Vec<BoardDetailLabel>,
250}
251
252#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
253pub struct BoardLabelAdded {
254 pub board_id: String,
255 pub label_id: String,
256}
257
258#[derive(Debug, Eq, PartialEq, Serialize)]
259pub struct BoardCopySuccess {
260 pub source_board_id: String,
261 pub board_id: String,
262}