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 archived: bool,
140    pub archived_at: Option<String>,
141    pub deleted_at: Option<String>,
142    pub deleted_by: Option<String>,
143    pub delete_batch_id: Option<String>,
144    pub parent_id: Option<String>,
145    pub list_id: Option<String>,
146    pub swimlane_id: String,
147    pub board_id: Option<String>,
148    pub cover_id: Option<String>,
149    pub color: Option<String>,
150    pub created_at: String,
151    pub modified_at: String,
152    pub custom_fields: Vec<CardDetailCustomField>,
153    pub date_last_activity: String,
154    pub description: Option<String>,
155    pub requested_by: Option<String>,
156    pub assigned_by: Option<String>,
157    pub label_ids: Vec<Option<String>>,
158    pub members: Vec<String>,
159    pub assignees: Vec<String>,
160    pub requesters: Vec<String>,
161    pub assigners: Vec<String>,
162    pub received_at: Option<String>,
163    pub start_at: Option<String>,
164    pub due_at: Option<String>,
165    pub end_at: Option<String>,
166    pub due_complete: Option<bool>,
167    pub stickers: Vec<CardDetailSticker>,
168    pub location_name: Option<String>,
169    pub location_address: Option<String>,
170    pub location_latitude: Option<Number>,
171    pub location_longitude: Option<Number>,
172    pub locations: Vec<CardDetailLocation>,
173    pub spent_time: Option<Number>,
174    pub is_overtime: Option<bool>,
175    pub user_id: String,
176    pub sort: Option<Number>,
177    pub subtask_sort: Option<Number>,
178    pub card_type: String,
179    pub linked_id: Option<String>,
180    pub card_dependencies: Vec<CardDetailDependency>,
181    pub vote: Option<CardDetailVote>,
182    pub poker: Option<CardDetailPoker>,
183    pub target_id_gantt: Vec<String>,
184    pub link_type_gantt: Vec<Number>,
185    pub link_id_gantt: Vec<String>,
186    pub card_number: Option<Number>,
187    pub show_activities: bool,
188    pub show_list_on_minicard: Option<bool>,
189    pub show_checklist_at_minicard: Option<bool>,
190    pub hide_finished_checklist_if_items_are_hidden: Option<bool>,
191}
192
193#[derive(Debug, Eq, PartialEq, Serialize)]
194pub struct CardCreateSuccess {
195    pub board_id: String,
196    pub list_id: String,
197    pub card_id: String,
198}
199
200#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
201#[serde(rename_all = "snake_case")]
202pub enum CardSubmittedField {
203    Title,
204    Sort,
205    ParentId,
206    Description,
207    Color,
208    LabelIds,
209    RequestedBy,
210    AssignedBy,
211    ReceivedAt,
212    StartAt,
213    DueAt,
214    EndAt,
215    SpentTime,
216    IsOverTime,
217    Members,
218    Assignees,
219    DueComplete,
220    SwimlaneId,
221    ListId,
222    NewBoardId,
223    NewSwimlaneId,
224    NewListId,
225    Archive,
226    Vote,
227    Poker,
228    CustomFields,
229    Stickers,
230    Locations,
231}
232
233#[derive(Debug, Eq, PartialEq, Serialize)]
234pub struct CardUpdateSuccess {
235    pub board_id: String,
236    pub list_id: String,
237    pub card_id: String,
238    pub submitted_fields: Vec<CardSubmittedField>,
239}
240
241#[derive(Debug, Eq, PartialEq, Serialize)]
242pub struct CardArchiveSuccess {
243    pub board_id: String,
244    pub list_id: String,
245    pub card_id: String,
246    pub archived: bool,
247    pub archived_at: String,
248}
249
250#[derive(Debug, Eq, PartialEq, Serialize)]
251pub struct CardRestoreSuccess {
252    pub board_id: String,
253    pub list_id: String,
254    pub card_id: String,
255    pub archived: bool,
256}
257
258#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
259#[serde(rename_all = "snake_case")]
260pub enum CardDeleteMode {
261    Hard,
262}
263
264#[derive(Debug, Eq, PartialEq, Serialize)]
265pub struct CardDeleteSuccess {
266    pub board_id: String,
267    pub list_id: String,
268    pub card_id: String,
269    pub deleted: bool,
270    pub delete_mode: CardDeleteMode,
271}
272
273#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
274pub struct CardCustomFieldSetSuccess {
275    pub board_id: String,
276    pub list_id: String,
277    pub card_id: String,
278    pub custom_field_id: String,
279    pub custom_fields: Vec<CardDetailCustomField>,
280}
281#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
282pub struct CardCustomFieldQuerySuccess {
283    pub board_id: String,
284    pub custom_field_id: String,
285    pub value: String,
286    pub cards: Vec<CardDetail>,
287}
288
289#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
290pub struct CardLabelCollection {
291    pub board_id: String,
292    pub list_id: String,
293    pub card_id: String,
294    pub label_ids: Vec<Option<String>>,
295}