Skip to main content

wekan_cli/command_result/
cards.rs

1use serde::Serialize;
2use serde_json::Number;
3
4#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
5#[serde(rename_all = "snake_case")]
6pub enum CardMembershipKind {
7    Member,
8    Assignee,
9}
10
11#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
12pub struct CardMemberCollectionSuccess {
13    pub board_id: String,
14    pub list_id: String,
15    pub card_id: String,
16    pub members: Vec<String>,
17}
18
19#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
20pub struct CardAssigneeCollectionSuccess {
21    pub board_id: String,
22    pub list_id: String,
23    pub card_id: String,
24    pub assignees: Vec<String>,
25}
26
27#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
28pub struct CardMembershipMutationSuccess {
29    pub board_id: String,
30    pub list_id: String,
31    pub card_id: String,
32    pub user_id: String,
33    pub kind: CardMembershipKind,
34    pub action: super::MembershipAction,
35    pub members: Vec<String>,
36    pub assignees: Vec<String>,
37}
38
39#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
40pub struct CardSummary {
41    pub card_id: String,
42    pub title: Option<String>,
43    pub description: Option<String>,
44    pub swimlane_id: Option<String>,
45    pub received_at: Option<String>,
46    pub start_at: Option<String>,
47    pub due_at: Option<String>,
48    pub end_at: Option<String>,
49    pub assignees: Vec<String>,
50    pub sort: Option<Number>,
51}
52
53#[derive(Debug, Eq, PartialEq, Serialize)]
54pub struct CardCollectionSuccess {
55    pub board_id: String,
56    pub list_id: String,
57    pub cards: Vec<CardSummary>,
58}
59
60#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
61#[serde(untagged)]
62pub enum CardDetailCustomFieldValue {
63    String(String),
64    Number(Number),
65    Boolean(bool),
66    Strings(Vec<Option<String>>),
67}
68
69#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
70pub struct CardDetailCustomField {
71    pub custom_field_id: Option<String>,
72    pub value: Option<CardDetailCustomFieldValue>,
73}
74
75#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
76#[serde(rename_all = "lowercase")]
77pub enum CardDetailStickerHighlight {
78    Underline,
79    Round,
80}
81
82#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
83pub struct CardDetailSticker {
84    pub icon: Option<String>,
85    pub name: Option<String>,
86    pub highlight: Option<CardDetailStickerHighlight>,
87    pub position: Option<Number>,
88}
89
90#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
91pub struct CardDetailLocation {
92    pub location_id: String,
93    pub name: Option<String>,
94    pub address: Option<String>,
95    pub latitude: Option<Number>,
96    pub longitude: Option<Number>,
97}
98
99#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
100pub struct CardDetailDependency {
101    pub card_id: String,
102    pub dependency_type: Option<String>,
103    pub color: Option<String>,
104    pub icon: Option<String>,
105}
106
107#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
108pub struct CardDetailVote {
109    pub question: String,
110    pub positive: Vec<String>,
111    pub negative: Vec<String>,
112    pub end: Option<String>,
113    pub public: bool,
114    pub allow_non_board_members: bool,
115}
116
117#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
118pub struct CardDetailPoker {
119    pub question: Option<bool>,
120    pub one: Vec<String>,
121    pub two: Vec<String>,
122    pub three: Vec<String>,
123    pub five: Vec<String>,
124    pub eight: Vec<String>,
125    pub thirteen: Vec<String>,
126    pub twenty: Vec<String>,
127    pub forty: Vec<String>,
128    pub one_hundred: Vec<String>,
129    pub unsure: Vec<String>,
130    pub end: Option<String>,
131    pub allow_non_board_members: Option<bool>,
132    pub estimation: Option<Number>,
133}
134
135#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
136pub struct CardDetail {
137    pub card_id: String,
138    pub title: Option<String>,
139    pub watchers: Option<Vec<String>>,
140    pub archived: bool,
141    pub archived_at: Option<String>,
142    pub deleted_at: Option<String>,
143    pub deleted_by: Option<String>,
144    pub delete_batch_id: Option<String>,
145    pub parent_id: Option<String>,
146    pub list_id: Option<String>,
147    pub swimlane_id: String,
148    pub board_id: Option<String>,
149    pub cover_id: Option<String>,
150    pub color: Option<String>,
151    pub created_at: String,
152    pub modified_at: String,
153    pub custom_fields: Vec<CardDetailCustomField>,
154    pub date_last_activity: String,
155    pub description: Option<String>,
156    pub requested_by: Option<String>,
157    pub assigned_by: Option<String>,
158    pub label_ids: Vec<Option<String>>,
159    pub members: Vec<String>,
160    pub assignees: Vec<String>,
161    pub requesters: Vec<String>,
162    pub assigners: Vec<String>,
163    pub received_at: Option<String>,
164    pub start_at: Option<String>,
165    pub due_at: Option<String>,
166    pub end_at: Option<String>,
167    pub due_complete: Option<bool>,
168    pub stickers: Vec<CardDetailSticker>,
169    pub location_name: Option<String>,
170    pub location_address: Option<String>,
171    pub location_latitude: Option<Number>,
172    pub location_longitude: Option<Number>,
173    pub locations: Vec<CardDetailLocation>,
174    pub spent_time: Option<Number>,
175    pub is_overtime: Option<bool>,
176    pub user_id: String,
177    pub sort: Option<Number>,
178    pub subtask_sort: Option<Number>,
179    pub card_type: String,
180    pub linked_id: Option<String>,
181    pub card_dependencies: Vec<CardDetailDependency>,
182    pub vote: Option<CardDetailVote>,
183    pub poker: Option<CardDetailPoker>,
184    pub target_id_gantt: Vec<String>,
185    pub link_type_gantt: Vec<Number>,
186    pub link_id_gantt: Vec<String>,
187    pub card_number: Option<Number>,
188    pub show_activities: bool,
189    pub show_list_on_minicard: Option<bool>,
190    pub show_checklist_at_minicard: Option<bool>,
191    pub hide_finished_checklist_if_items_are_hidden: Option<bool>,
192}
193
194#[derive(Debug, Eq, PartialEq, Serialize)]
195pub struct CardCreateSuccess {
196    pub board_id: String,
197    pub list_id: String,
198    pub card_id: String,
199}
200
201#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
202#[serde(rename_all = "snake_case")]
203pub enum CardSubmittedField {
204    Title,
205    Sort,
206    ParentId,
207    Description,
208    Color,
209    LabelIds,
210    RequestedBy,
211    AssignedBy,
212    ReceivedAt,
213    StartAt,
214    DueAt,
215    EndAt,
216    SpentTime,
217    IsOverTime,
218    Members,
219    Assignees,
220    DueComplete,
221    SwimlaneId,
222    ListId,
223    NewBoardId,
224    NewSwimlaneId,
225    NewListId,
226    Archive,
227    Vote,
228    Poker,
229    CustomFields,
230    Stickers,
231    Locations,
232}
233
234#[derive(Debug, Eq, PartialEq, Serialize)]
235pub struct CardUpdateSuccess {
236    pub board_id: String,
237    pub list_id: String,
238    pub card_id: String,
239    pub submitted_fields: Vec<CardSubmittedField>,
240}
241
242#[derive(Debug, Eq, PartialEq, Serialize)]
243pub struct CardArchiveSuccess {
244    pub board_id: String,
245    pub list_id: String,
246    pub card_id: String,
247    pub archived: bool,
248    pub archived_at: String,
249}
250
251#[derive(Debug, Eq, PartialEq, Serialize)]
252pub struct CardRestoreSuccess {
253    pub board_id: String,
254    pub list_id: String,
255    pub card_id: String,
256    pub archived: bool,
257}
258
259#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
260#[serde(rename_all = "snake_case")]
261pub enum CardDeleteMode {
262    Hard,
263}
264
265#[derive(Debug, Eq, PartialEq, Serialize)]
266pub struct CardDeleteSuccess {
267    pub board_id: String,
268    pub list_id: String,
269    pub card_id: String,
270    pub deletion_requested: bool,
271    pub delete_mode: CardDeleteMode,
272}
273
274#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
275pub struct CardCustomFieldSetSuccess {
276    pub board_id: String,
277    pub list_id: String,
278    pub card_id: String,
279    pub custom_field_id: String,
280    pub custom_fields: Vec<CardDetailCustomField>,
281}
282#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
283pub struct CardCustomFieldQuerySuccess {
284    pub board_id: String,
285    pub custom_field_id: String,
286    pub value: String,
287    pub cards: Vec<CardDetail>,
288}
289
290#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
291pub struct CardLabelCollection {
292    pub board_id: String,
293    pub list_id: String,
294    pub card_id: String,
295    pub label_ids: Vec<Option<String>>,
296}
297
298#[derive(Debug, Eq, PartialEq, Serialize)]
299pub struct CardCopySuccess {
300    pub source_board_id: String,
301    pub source_list_id: String,
302    pub source_card_id: String,
303    pub target_board_id: String,
304    pub target_list_id: String,
305    pub target_swimlane_id: String,
306    pub card_id: String,
307}
308#[derive(Debug, Eq, PartialEq, Serialize)]
309pub struct CardCountSuccess {
310    pub board_id: String,
311    pub list_id: Option<String>,
312    pub count: u64,
313}
314#[derive(Debug, Eq, PartialEq, Serialize)]
315pub struct SwimlaneCardCollectionSuccess {
316    pub board_id: String,
317    pub swimlane_id: String,
318    pub cards: Vec<SwimlaneCardSummary>,
319}
320
321#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
322pub struct SwimlaneCardSummary {
323    pub card_id: String,
324    pub title: Option<String>,
325    pub description: Option<String>,
326    pub list_id: Option<String>,
327    pub received_at: Option<String>,
328    pub start_at: Option<String>,
329    pub due_at: Option<String>,
330    pub end_at: Option<String>,
331    pub assignees: Option<Vec<Option<String>>>,
332    pub sort: Option<Number>,
333}