riot_api/models/league/
platform_data.rs1use serde::Deserialize;
2
3#[derive(Debug, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct PlatformDataDto {
6 pub id: String,
7 pub name: String,
8 pub locales: Vec<String>,
9 pub maintenances: Vec<StatusDto>,
10 pub incidents: Vec<StatusDto>,
11}
12
13#[derive(Debug, Deserialize)]
14#[serde(rename_all = "camelCase")]
15pub struct StatusDto {
16 pub id: i32,
17 pub maintenance_status: MaintenanceStatus,
18 pub incident_severity: IncidentSeverity,
19 pub titles: Vec<ContentDto>,
20 pub updates: Vec<UpdateDto>,
21 pub created_at: String,
22 pub archive_at: Option<String>,
23 pub updated_at: Option<String>,
24 pub platforms: Vec<Platform>,
25}
26
27#[derive(Debug, Deserialize)]
28#[serde(rename_all = "snake_case")]
29pub enum MaintenanceStatus {
30 Scheduled,
31 InProgress,
32 Complete,
33}
34
35#[derive(Debug, Deserialize)]
36#[serde(rename_all = "lowercase")]
37pub enum IncidentSeverity {
38 Info,
39 Warning,
40 Critical,
41}
42
43#[derive(Debug, Deserialize)]
44#[serde(rename_all = "camelCase")]
45pub struct ContentDto {
46 pub locale: String,
47 pub content: String,
48}
49
50#[derive(Debug, Deserialize)]
51#[serde(rename_all = "camelCase")]
52pub struct UpdateDto {
53 pub id: i32,
54 pub author: String,
55 pub publish: bool,
56 pub publish_location: Vec<PublishLocation>,
57 pub translations: Vec<ContentDto>,
58 pub created_at: String,
59 pub updated_at: String,
60}
61
62#[derive(Debug, Deserialize)]
63#[serde(rename_all = "lowercase")]
64pub enum PublishLocation {
65 RiotClient,
66 RiotStatus,
67 Game,
68}
69
70#[derive(Debug, Deserialize)]
71#[serde(rename_all = "lowercase")]
72pub enum Platform {
73 Windows,
74 Macos,
75 Android,
76 Ios,
77 Ps4,
78 Xbone,
79 Switch,
80}