riot_api/models/league/
platform_data.rs

1use 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}