trello-to-deck/src/nextcloud/model.rs

179 lines
3.1 KiB
Rust
Raw Normal View History

//
use derive_more::derive::Display;
use serde::{Deserialize, Serialize};
use crate::newtype;
newtype!(
NextcloudHostname,
String,
Display,
PartialOrd,
Ord,
"Hostname of the Nextcloud server"
);
newtype!(
NextcloudUsername,
String,
Display,
PartialOrd,
Ord,
"Username to authenticate as"
);
newtype!(
NextcloudPassword,
String,
PartialOrd,
Ord,
"Password to authenticate with"
);
newtype!(
NextcloudBoardId,
i64,
Copy,
Display,
PartialOrd,
Ord,
"ID of a Nextcloud Board"
);
newtype!(
NextcloudStackId,
i64,
Copy,
Display,
PartialOrd,
Ord,
"ID of a Nextcloud Stack"
);
newtype!(
NextcloudCardId,
i64,
Copy,
Display,
PartialOrd,
Ord,
"ID of a Nextcloud Card"
);
newtype!(
NextcloudLabelId,
i64,
Copy,
Display,
2024-12-19 09:04:23 +00:00
Hash,
PartialOrd,
Ord,
2024-12-20 21:01:33 +00:00
kameo::Reply,
"ID of a Nextcloud Label"
);
newtype!(
NextcloudLabelTitle,
String,
Display,
2024-12-19 09:04:23 +00:00
Hash,
PartialOrd,
Ord,
"Title of a Nextcloud Label"
);
newtype!(
NextcloudLabelColour,
String,
Display,
2024-12-19 09:04:23 +00:00
Hash,
PartialOrd,
Ord,
"Colour of a Nextcloud Label"
);
newtype!(
NextcloudOrder,
i64,
Copy,
Display,
PartialOrd,
Ord,
"Relative position of the item amongst its peers"
);
newtype!(
NextcloudETag,
String,
PartialOrd,
Ord,
"ETag for a resource"
);
newtype!(
NextcloudBoardTitle,
String,
Display,
PartialOrd,
Ord,
"Title of the Board"
);
newtype!(
NextcloudBoardColour,
String,
PartialOrd,
Ord,
"Colour of the Board"
);
newtype!(
NextcloudStackTitle,
String,
Display,
PartialOrd,
Ord,
"Title of the Stack"
);
newtype!(
NextcloudCardTitle,
String,
Display,
PartialOrd,
Ord,
"Title of the Card"
);
2024-12-15 20:07:34 +00:00
newtype!(
NextcloudCardDescription,
String,
Display,
PartialOrd,
Ord,
"Description of the Card"
);
2024-11-29 14:31:40 +00:00
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub(crate) struct Board {
pub(crate) id: NextcloudBoardId,
pub(crate) title: NextcloudBoardTitle,
pub(crate) labels: Vec<Label>,
}
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub(crate) struct Stack {
pub(crate) id: NextcloudStackId,
pub(crate) title: NextcloudStackTitle,
pub(crate) order: NextcloudOrder,
#[serde(default)]
pub(crate) cards: Vec<Card>,
}
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub(crate) struct Card {
pub(crate) id: NextcloudCardId,
pub(crate) title: NextcloudCardTitle,
pub(crate) order: NextcloudOrder,
}
2024-12-19 09:04:23 +00:00
#[derive(Clone, Debug, Serialize, Deserialize, Hash, PartialEq, Eq, PartialOrd, Ord)]
pub(crate) struct Label {
pub(crate) id: NextcloudLabelId,
pub(crate) title: NextcloudLabelTitle,
pub(crate) color: NextcloudLabelColour,
}
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub(crate) struct Attachment {
pub(crate) id: i64,
#[serde(rename = "type")]
pub(crate) attachment_type: String,
}