1use crate::client::metadata::*;
2use serde::{Deserialize, Serialize};
3use serde_json::Number;
4
5#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
6pub struct BoardMemberCollectionSuccess {
7 pub board_id: String,
8 pub members: Vec<BoardDetailMember>,
9}
10
11#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
12pub struct BoardMemberMutationSuccess {
13 pub board_id: String,
14 pub user_id: String,
15 pub action: super::MembershipAction,
16 pub boards: Vec<BoardSummary>,
17}
18
19#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
20#[serde(rename_all = "snake_case")]
21pub enum BoardMemberSubmittedField {
22 Role,
23 IsAdmin,
24 IsNoComments,
25 IsCommentOnly,
26 IsWorker,
27 IsNormalAssignedOnly,
28 IsCommentAssignedOnly,
29 IsReadOnly,
30 IsReadAssignedOnly,
31}
32
33#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
34pub struct BoardMemberUpdateSuccess {
35 pub board_id: String,
36 pub user_id: String,
37 pub affected_documents: u64,
38 pub submitted_fields: Vec<BoardMemberSubmittedField>,
39}
40
41#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
42pub struct BoardSummary {
43 pub board_id: String,
44 pub title: String,
45}
46
47pub type UserBoardSummary = BoardSummary;
48
49#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
50#[serde(rename_all = "snake_case")]
51pub struct BoardDetailMember {
52 pub granted_by: Option<Vec<String>>,
53 pub custom_role_id: Option<String>,
54 pub user_id: String,
55 pub is_admin: bool,
56 pub is_active: bool,
57 pub is_no_comments: Option<bool>,
58 pub is_comment_only: Option<bool>,
59 pub is_worker: Option<bool>,
60 pub is_normal_assigned_only: Option<bool>,
61 pub is_comment_assigned_only: Option<bool>,
62 pub is_read_only: Option<bool>,
63 pub is_read_assigned_only: Option<bool>,
64}
65
66#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
67#[serde(rename_all = "snake_case")]
68pub struct BoardDetailWatcher {
69 pub user_id: String,
70 pub level: String,
71}
72
73#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
74#[serde(rename_all = "snake_case")]
75pub struct BoardDetailLabel {
76 pub due_at: Option<String>,
77 pub shared_label_id: Option<String>,
78 pub label_id: String,
79 pub name: Option<String>,
80 pub color: String,
81}
82
83#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
84#[serde(rename_all = "snake_case")]
85pub struct BoardDetailOrganization {
86 pub org_id: String,
87 pub org_display_name: String,
88 pub is_active: bool,
89}
90
91#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
92#[serde(rename_all = "snake_case")]
93pub struct BoardDetailTeam {
94 pub team_id: String,
95 pub team_display_name: String,
96 pub is_active: bool,
97}
98
99#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
100#[serde(rename_all = "snake_case")]
101pub struct BoardDetailDomain {
102 pub domain: String,
103 pub is_active: bool,
104}
105
106#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
107#[serde(rename_all = "snake_case")]
108pub struct BoardDetail {
109 pub scrum: Option<Box<ScrumSettings>>,
110 pub scrum_import_losses: Option<Vec<ScrumImportLoss>>,
111 pub announcement: Option<BoardAnnouncement>,
112 pub wip_limit_groups: Option<Vec<BoardWipGroup>>,
113 pub email_to_card: Option<Box<BoardEmailToCard>>,
114 pub notification_delivery: Option<Box<NotificationDelivery>>,
115 pub column_sets: Option<Vec<BoardColumnSet>>,
116
117 pub scrum_revision: Option<serde_json::Number>,
118 pub allows_instance_editing: Option<bool>,
119 pub import_run_id: Option<String>,
120 pub sync_effects_enabled: Option<bool>,
121 pub map_image_attachment_id: Option<String>,
122 pub auto_archive_inactive_days: Option<Number>,
123 pub rules_visible_to_members: Option<bool>,
124 pub card_field_order: Option<Vec<String>>,
125 pub minicard_field_order: Option<Vec<String>>,
126 pub notify_override_tray: Option<bool>,
127 pub notify_override_email: Option<bool>,
128 pub due_reminder_days: Option<Vec<Number>>,
129 pub due_reminder_webhook: Option<bool>,
130 pub labels_above_title_on_card: Option<bool>,
131 pub allows_checklist_due_date_on_minicard: Option<bool>,
132 pub allows_location_on_minicard: Option<bool>,
133 pub allows_swimlane_name_on_card: Option<bool>,
134 pub allows_flowtime_on_minicard: Option<bool>,
135 pub allows_pomodoro_on_minicard: Option<bool>,
136 pub allows_attachment_list_on_minicard: Option<bool>,
137 pub allows_text_notes_on_minicard: Option<bool>,
138 pub allows_comment_count_on_card: Option<bool>,
139 pub allows_activities_on_minicard: Option<bool>,
140 pub allows_card_buttons_on_minicard: Option<bool>,
141 pub allows_description_badge_on_card: Option<bool>,
142 pub allows_unread_comments_on_card: Option<bool>,
143 pub allows_due_from_title_on_card: Option<bool>,
144 pub allows_due_from_title_on_minicard: Option<bool>,
145 pub allows_similar_cards_on_card: Option<bool>,
146 pub allows_similar_cards_on_minicard: Option<bool>,
147 pub allows_at_risk_on_card: Option<bool>,
148 pub allows_at_risk_on_minicard: Option<bool>,
149 pub allows_suggested_members_on_card: Option<bool>,
150 pub allows_forecast_on_card: Option<bool>,
151 pub allows_forecast_on_minicard: Option<bool>,
152 pub allows_checklist_from_description_on_card: Option<bool>,
153 pub allows_action_items_on_card: Option<bool>,
154 pub allows_whiteboard_on_card: Option<bool>,
155 pub shared_list_headers: Option<bool>,
156 pub board_view_settings: Option<
157 std::collections::BTreeMap<
158 String,
159 crate::client::boards::presentation::StoredBoardViewVisibility,
160 >,
161 >,
162 pub board_view_order: Option<Vec<String>>,
163 pub date_format_override: Option<bool>,
164 pub date_format: Option<String>,
165 pub ask_for_move_reason: Option<bool>,
166 pub subtasks_default_swimlane_id: Option<String>,
167 pub allows_swimlane_dragging: Option<bool>,
168 pub allows_list_dragging: Option<bool>,
169 pub allows_card_dragging: Option<bool>,
170 pub allows_checklist_dragging: Option<bool>,
171 pub allows_checklist_item_dragging: Option<bool>,
172 pub allows_subtask_dragging: Option<bool>,
173 pub allows_minicard_collapse: Option<bool>,
174 pub labels_above_title_on_minicard: Option<bool>,
175 pub allows_checklist_due_date: Option<bool>,
176 pub allows_checklist_title: Option<bool>,
177 pub allows_comments_on_minicard: Option<bool>,
178 pub show_label_text: Option<bool>,
179 pub allows_swimlane_name_on_minicard: Option<bool>,
180 pub allows_spent_time: Option<bool>,
181 pub allows_spent_time_on_minicard: Option<bool>,
182 pub allows_stickers: Option<bool>,
183 pub allows_stickers_on_minicard: Option<bool>,
184 pub allows_location: Option<bool>,
185 pub allows_dependencies: Option<bool>,
186 pub allows_dependencies_on_minicard: Option<bool>,
187 pub allows_flowtime: Option<bool>,
188 pub allows_pomodoro: Option<bool>,
189 pub allows_vote: Option<bool>,
190 pub allows_vote_on_minicard: Option<bool>,
191 pub allows_poker: Option<bool>,
192 pub allows_poker_on_minicard: Option<bool>,
193 pub allows_text_notes: Option<bool>,
194 pub allows_comment_count_on_minicard: Option<bool>,
195 pub allows_card_collapse: Option<bool>,
196 pub allows_checklist_title_on_minicard: Option<bool>,
197 pub allows_label_text_on_card: Option<bool>,
198 pub allows_card_color_on_card: Option<bool>,
199 pub allows_card_color_on_minicard: Option<bool>,
200 pub allows_parent_card_on_card: Option<bool>,
201 pub allows_parent_card_on_minicard: Option<bool>,
202 pub allows_linked_card_on_card: Option<bool>,
203 pub allows_linked_card_on_minicard: Option<bool>,
204 pub allows_card_buttons_on_card: Option<bool>,
205 pub allows_description_badge_on_minicard: Option<bool>,
206 pub allows_unread_comments_on_minicard: Option<bool>,
207 pub allows_issue_type_on_minicard: Option<bool>,
208 pub sticky_list_headers: Option<bool>,
209 pub list_width_resize_locked: Option<bool>,
210 pub swimlane_height_resize_locked: Option<bool>,
211 pub default_public_board_view: Option<String>,
212 pub default_private_board_view: Option<String>,
213 pub same_width_for_all_lists: Option<bool>,
214 pub same_width_for_all_lists_value: Option<Number>,
215 pub key: Option<String>,
216 pub board_id: String,
217 pub title: String,
218 pub slug: Option<String>,
219 pub archived: Option<bool>,
220 pub archived_at: Option<String>,
221 pub created_at: Option<String>,
222 pub modified_at: Option<String>,
223 pub stars: Option<Number>,
224 #[serde(default)]
225 pub labels: Vec<BoardDetailLabel>,
226 #[serde(default)]
227 pub members: Vec<BoardDetailMember>,
228 #[serde(default)]
229 pub watchers: Vec<BoardDetailWatcher>,
230 pub permission: Option<String>,
231 #[serde(default)]
232 pub orgs: Vec<BoardDetailOrganization>,
233 #[serde(default)]
234 pub teams: Vec<BoardDetailTeam>,
235 #[serde(default)]
236 pub domains: Vec<BoardDetailDomain>,
237 #[serde(default)]
238 pub import_usernames: Vec<String>,
239 pub color: Option<String>,
240 #[serde(default)]
241 pub custom_theme_colors: Vec<String>,
242 pub background_image_url: Option<String>,
243 pub background_image_id: Option<String>,
244 pub allows_card_counter_list: Option<bool>,
245 pub card_aging: Option<bool>,
246 pub show_dependencies: Option<bool>,
247 pub card_aging_days1: Option<Number>,
248 pub card_aging_days2: Option<Number>,
249 pub card_aging_days3: Option<Number>,
250 pub allows_board_member_list: Option<bool>,
251 pub description: Option<String>,
252 pub subtasks_default_board_id: Option<String>,
253 pub migration_version: Option<Number>,
254 pub subtasks_default_list_id: Option<String>,
255 pub date_settings_default_board_id: Option<String>,
256 pub date_settings_default_list_id: Option<String>,
257 pub allows_subtasks: Option<bool>,
258 pub allows_subtasks_on_minicard: Option<bool>,
259 pub allows_attachments: Option<bool>,
260 pub allows_attachments_on_minicard: Option<bool>,
261 pub allows_checklists: Option<bool>,
262 pub allows_checklists_on_minicard: Option<bool>,
263 pub allows_custom_fields: Option<bool>,
264 pub allows_custom_fields_on_minicard: Option<bool>,
265 pub allows_checklist_count_badge_on_minicard: Option<bool>,
266 pub allows_comments: Option<bool>,
267 pub allows_description_title: Option<bool>,
268 pub allows_description_title_on_minicard: Option<bool>,
269 pub allows_description_text: Option<bool>,
270 pub allows_description_text_on_minicard: Option<bool>,
271 pub allows_cover_attachment_on_minicard: Option<bool>,
272 pub allows_cover_attachment_on_card: Option<bool>,
273 pub allows_badge_attachment_on_minicard: Option<bool>,
274 pub allows_attachment_count_on_card: Option<bool>,
275 pub allows_checklist_count_badge_on_card: Option<bool>,
276 pub allows_card_sorting_by_number_on_minicard: Option<bool>,
277 pub allows_card_number: Option<bool>,
278 pub allows_card_number_on_minicard: Option<bool>,
279 pub allows_activities: Option<bool>,
280 pub allows_labels: Option<bool>,
281 pub allows_labels_on_minicard: Option<bool>,
282 pub allows_creator: Option<bool>,
283 pub allows_creator_on_minicard: Option<bool>,
284 pub allows_assignee: Option<bool>,
285 pub allows_assignee_on_minicard: Option<bool>,
286 pub allows_members: Option<bool>,
287 pub allows_members_on_minicard: Option<bool>,
288 pub allows_requested_by: Option<bool>,
289 pub allows_requested_by_on_minicard: Option<bool>,
290 pub allows_card_sorting_by_number: Option<bool>,
291 pub allows_show_lists: Option<bool>,
292 pub allows_assigned_by: Option<bool>,
293 pub allows_assigned_by_on_minicard: Option<bool>,
294 pub allows_show_lists_on_minicard: Option<bool>,
295 pub allows_checklist_at_minicard: Option<bool>,
296 pub allows_received_date: Option<bool>,
297 pub restrict_comment_editing: Option<bool>,
298 pub allows_personal_list_width: Option<bool>,
299 pub auto_width: Option<bool>,
300 pub allows_received_date_on_minicard: Option<bool>,
301 pub allows_start_date: Option<bool>,
302 pub allows_start_date_on_minicard: Option<bool>,
303 pub allows_end_date: Option<bool>,
304 pub allows_end_date_on_minicard: Option<bool>,
305 pub allows_due_date: Option<bool>,
306 pub allows_due_date_on_minicard: Option<bool>,
307 pub allows_due_complete: Option<bool>,
308 pub allows_due_complete_on_minicard: Option<bool>,
309 pub present_parent_task: Option<String>,
310 pub received_at: Option<String>,
311 pub start_at: Option<String>,
312 pub due_at: Option<String>,
313 pub end_at: Option<String>,
314 pub spent_time: Option<Number>,
315 pub is_overtime: Option<bool>,
316 pub board_type: Option<String>,
317 pub sort: Option<Number>,
318 pub show_activities: Option<bool>,
319}
320
321#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
322#[serde(rename_all = "snake_case")]
323pub enum BoardListScope {
324 Active,
325 Public,
326}
327
328#[derive(Debug, Eq, PartialEq, Serialize)]
329pub struct BoardListSuccess {
330 pub scope: BoardListScope,
331 pub boards: Vec<BoardSummary>,
332}
333
334#[derive(Debug, Eq, PartialEq, Serialize)]
335pub struct BoardCountSuccess {
336 pub instance: u64,
337 pub private: u64,
338 pub public: u64,
339}
340
341#[derive(Debug, Eq, PartialEq, Serialize)]
342pub struct BoardCreateSuccess {
343 pub board_id: String,
344 pub default_swimlane_id: String,
345}
346
347#[derive(Debug, Eq, PartialEq, Serialize)]
348pub struct BoardRenameSuccess {
349 pub board_id: String,
350 pub title: String,
351}
352
353#[derive(Debug, Eq, PartialEq, Serialize)]
354pub struct BoardDeleteSuccess {
355 pub board_id: String,
356 pub deleted: bool,
357}
358
359#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
360pub struct BoardLabelCollection {
361 pub board_id: String,
362 pub labels: Vec<BoardDetailLabel>,
363}
364
365#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
366pub struct BoardLabelAdded {
367 pub board_id: String,
368 pub label_id: String,
369}
370
371#[derive(Debug, Eq, PartialEq, Serialize)]
372pub struct BoardCopySuccess {
373 pub source_board_id: String,
374 pub board_id: String,
375}