todoist_tui/model/
command.rs1use super::{due_date::Due, item, project};
2use serde::{Deserialize, Serialize};
3use uuid::Uuid;
4
5#[derive(Debug, Serialize, Deserialize, Clone)]
6pub struct Command {
7 #[serde(rename = "type")]
9 pub request_type: String,
10 pub uuid: Uuid,
11 pub temp_id: Option<String>,
12 pub args: Args,
13}
14
15#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
16#[serde(untagged)]
17pub enum Args {
18 AddItemCommandArgs(AddItemArgs),
19 CompleteItemCommandArgs(CompleteItemArgs),
20}
21
22#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
23pub struct AddItemArgs {
24 pub project_id: project::Id,
25 pub content: String,
26 pub due: Option<Due>,
27}
28
29#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
30pub struct CompleteItemArgs {
31 pub id: item::Id,
32 }