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