1use serde::{Deserialize, Serialize};
2
3use super::account::Account;
4
5#[derive(Debug, Default, Clone, Deserialize, Serialize)]
6pub struct LadderEntry {
7 pub rank: usize,
8 pub dead: Option<bool>,
9 pub retired: Option<bool>,
10 pub ineligible: Option<bool>,
11 pub public: Option<bool>,
12 pub character: LadderCharacter,
13 pub account: Option<Account>,
14}
15
16#[derive(Debug, Default, Clone, Deserialize, Serialize)]
17pub struct LadderCharacter {
18 pub id: String,
19 pub name: String,
20 pub level: usize,
21 pub class: String,
22 pub time: Option<usize>,
23 pub score: Option<usize>,
24 pub experience: Option<usize>,
25 pub depth: Option<DelveLadderEntry>,
26 pub account: Option<Account>,
27}
28
29#[derive(Debug, Default, Clone, Deserialize, Serialize)]
30pub struct DelveLadderEntry {
31 pub default: Option<usize>,
32 pub solo: Option<usize>,
33}
34
35#[derive(Debug, Default, Clone, Deserialize, Serialize)]
36pub struct EventLadderEntry {
37 pub rank: usize,
38 pub ineligible: Option<bool>,
39 pub time: Option<usize>,
40 pub private_league: Option<EventPrivateLeague>,
41}
42
43#[derive(Debug, Default, Clone, Deserialize, Serialize)]
44pub struct EventPrivateLeague {
45 pub name: String,
46 pub url: String,
47}