1use serde::{Deserialize, Serialize};
2
3use crate::endpoint;
4
5#[derive(Clone, Debug, Serialize, Deserialize)]
6pub struct Dungeon {
7 pub id: String,
8 pub paths: Vec<DungeonPath>,
9}
10
11#[derive(Clone, Debug, Serialize, Deserialize)]
12pub struct DungeonPath {
13 pub id: String,
14 #[serde(rename = "type")]
15 pub kind: DungeonKind,
16}
17
18#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
19#[serde(rename_all = "PascalCase")]
20pub enum DungeonKind {
21 Story,
22 Explorable,
23}
24
25endpoint!(Dungeon, "/v2/dungeons", String, get_all);