Skip to main content

wekan_cli/command_result/
cards.rs

1use serde::Serialize;
2use serde_json::Number;
3
4#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
5pub struct CardSummary {
6    pub card_id: String,
7    pub title: Option<String>,
8    pub description: Option<String>,
9    pub swimlane_id: Option<String>,
10    pub received_at: Option<String>,
11    pub start_at: Option<String>,
12    pub due_at: Option<String>,
13    pub end_at: Option<String>,
14    pub assignees: Vec<String>,
15    pub sort: Option<Number>,
16}
17
18#[derive(Debug, Eq, PartialEq, Serialize)]
19pub struct CardCollectionSuccess {
20    pub board_id: String,
21    pub list_id: String,
22    pub cards: Vec<CardSummary>,
23}
24
25#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
26#[serde(untagged)]
27pub enum CardDetailCustomFieldValue {
28    String(String),
29    Number(Number),
30    Boolean(bool),
31    Strings(Vec<Option<String>>),
32}
33
34#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
35pub struct CardDetailCustomField {
36    pub custom_field_id: Option<String>,
37    pub value: Option<CardDetailCustomFieldValue>,
38}
39
40#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
41#[serde(rename_all = "lowercase")]
42pub enum CardDetailStickerHighlight {
43    Underline,
44    Round,
45}
46
47#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
48pub struct CardDetailSticker {
49    pub icon: Option<String>,
50    pub name: Option<String>,
51    pub highlight: Option<CardDetailStickerHighlight>,
52    pub position: Option<Number>,
53}
54
55#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
56pub struct CardDetailLocation {
57    pub location_id: String,
58    pub name: Option<String>,
59    pub address: Option<String>,
60    pub latitude: Option<Number>,
61    pub longitude: Option<Number>,
62}
63
64#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
65pub struct CardDetailDependency {
66    pub card_id: String,
67    pub dependency_type: Option<String>,
68    pub color: Option<String>,
69    pub icon: Option<String>,
70}
71
72#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
73pub struct CardDetailVote {
74    pub question: String,
75    pub positive: Vec<String>,
76    pub negative: Vec<String>,
77    pub end: Option<String>,
78    pub public: bool,
79    pub allow_non_board_members: bool,
80}
81
82#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
83pub struct CardDetailPoker {
84    pub question: Option<bool>,
85    pub one: Vec<String>,
86    pub two: Vec<String>,
87    pub three: Vec<String>,
88    pub five: Vec<String>,
89    pub eight: Vec<String>,
90    pub thirteen: Vec<String>,
91    pub twenty: Vec<String>,
92    pub forty: Vec<String>,
93    pub one_hundred: Vec<String>,
94    pub unsure: Vec<String>,
95    pub end: Option<String>,
96    pub allow_non_board_members: Option<bool>,
97    pub estimation: Option<Number>,
98}
99
100#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
101pub struct CardDetail {
102    pub card_id: String,
103    pub title: Option<String>,
104    pub archived: bool,
105    pub archived_at: Option<String>,
106    pub deleted_at: Option<String>,
107    pub deleted_by: Option<String>,
108    pub delete_batch_id: Option<String>,
109    pub parent_id: Option<String>,
110    pub list_id: Option<String>,
111    pub swimlane_id: String,
112    pub board_id: Option<String>,
113    pub cover_id: Option<String>,
114    pub color: Option<String>,
115    pub created_at: String,
116    pub modified_at: String,
117    pub custom_fields: Vec<CardDetailCustomField>,
118    pub date_last_activity: String,
119    pub description: Option<String>,
120    pub requested_by: Option<String>,
121    pub assigned_by: Option<String>,
122    pub label_ids: Vec<String>,
123    pub members: Vec<String>,
124    pub assignees: Vec<String>,
125    pub requesters: Vec<String>,
126    pub assigners: Vec<String>,
127    pub received_at: Option<String>,
128    pub start_at: Option<String>,
129    pub due_at: Option<String>,
130    pub end_at: Option<String>,
131    pub due_complete: Option<bool>,
132    pub stickers: Vec<CardDetailSticker>,
133    pub location_name: Option<String>,
134    pub location_address: Option<String>,
135    pub location_latitude: Option<Number>,
136    pub location_longitude: Option<Number>,
137    pub locations: Vec<CardDetailLocation>,
138    pub spent_time: Option<Number>,
139    pub is_overtime: Option<bool>,
140    pub user_id: String,
141    pub sort: Option<Number>,
142    pub subtask_sort: Option<Number>,
143    pub card_type: String,
144    pub linked_id: Option<String>,
145    pub card_dependencies: Vec<CardDetailDependency>,
146    pub vote: Option<CardDetailVote>,
147    pub poker: Option<CardDetailPoker>,
148    pub target_id_gantt: Vec<String>,
149    pub link_type_gantt: Vec<Number>,
150    pub link_id_gantt: Vec<String>,
151    pub card_number: Option<Number>,
152    pub show_activities: bool,
153    pub show_list_on_minicard: Option<bool>,
154    pub show_checklist_at_minicard: Option<bool>,
155    pub hide_finished_checklist_if_items_are_hidden: Option<bool>,
156}
157
158#[derive(Debug, Eq, PartialEq, Serialize)]
159pub struct CardCreateSuccess {
160    pub board_id: String,
161    pub list_id: String,
162    pub card_id: String,
163}
164
165#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
166#[serde(rename_all = "snake_case")]
167pub enum CardSubmittedField {
168    Title,
169    Sort,
170    ParentId,
171    Description,
172    Color,
173    LabelIds,
174    RequestedBy,
175    AssignedBy,
176    ReceivedAt,
177    StartAt,
178    DueAt,
179    EndAt,
180    SpentTime,
181    IsOverTime,
182    Members,
183    Assignees,
184    DueComplete,
185    SwimlaneId,
186    ListId,
187    NewBoardId,
188    NewSwimlaneId,
189    NewListId,
190    Archive,
191    Vote,
192    Poker,
193    CustomFields,
194    Stickers,
195    Locations,
196}
197
198#[derive(Debug, Eq, PartialEq, Serialize)]
199pub struct CardUpdateSuccess {
200    pub board_id: String,
201    pub list_id: String,
202    pub card_id: String,
203    pub submitted_fields: Vec<CardSubmittedField>,
204}
205
206#[derive(Debug, Eq, PartialEq, Serialize)]
207pub struct CardArchiveSuccess {
208    pub board_id: String,
209    pub list_id: String,
210    pub card_id: String,
211    pub archived: bool,
212    pub archived_at: String,
213}
214
215#[derive(Debug, Eq, PartialEq, Serialize)]
216pub struct CardRestoreSuccess {
217    pub board_id: String,
218    pub list_id: String,
219    pub card_id: String,
220    pub archived: bool,
221}
222
223#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
224#[serde(rename_all = "snake_case")]
225pub enum CardDeleteMode {
226    Hard,
227}
228
229#[derive(Debug, Eq, PartialEq, Serialize)]
230pub struct CardDeleteSuccess {
231    pub board_id: String,
232    pub list_id: String,
233    pub card_id: String,
234    pub deleted: bool,
235    pub delete_mode: CardDeleteMode,
236}