mtgapi_client/model/
set.rs

1use chrono::NaiveDate;
2
3///DTO for the endpoints returning multiple sets
4#[derive(Serialize, Deserialize, Debug)]
5#[serde(deny_unknown_fields, untagged)]
6pub(crate) enum SetsDto {
7    Error {
8        status: Option<String>,
9        error: String,
10    },
11    Sets {
12        sets: Vec<SetDetail>,
13    },
14}
15
16///DTO for the endpoints returning a single set
17#[derive(Serialize, Deserialize, Debug)]
18#[serde(deny_unknown_fields, untagged)]
19pub(crate) enum SetDto {
20    Error {
21        status: Option<String>,
22        error: String,
23    },
24    Set {
25        set: Box<SetDetail>,
26    },
27}
28
29#[derive(Serialize, Deserialize, Debug)]
30#[serde(rename_all = "camelCase", deny_unknown_fields)]
31pub struct SetDetail {
32    pub code: String,
33    pub name: String,
34    #[serde(rename = "types")]
35    pub type_: String,
36    pub block: Option<String>,
37    pub gatherer_code: Option<String>,
38    pub old_code: Option<String>,
39    pub magic_cards_info_code: Option<String>,
40    pub release_date: NaiveDate,
41    pub border: String,
42    pub expansion: Option<String>,
43    pub online_only: Option<bool>,
44    #[serde(default)]
45    pub booster: Vec<Booster>,
46    #[serde(rename = "mkm_name")]
47    pub mkm_name: Option<String>,
48    #[serde(rename = "mkm_id")]
49    pub mkm_id: Option<u32>,
50}
51
52#[derive(Serialize, Deserialize, Debug)]
53#[serde(untagged)]
54pub enum Booster {
55    Multiple(Vec<String>),
56    Single(String),
57}