artifacts/models/
status_schema.rs

1use crate::models;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5#[cfg_attr(feature = "specta", derive(specta::Type))]
6pub struct StatusSchema {
7    /// Game version.
8    #[serde(rename = "version")]
9    pub version: String,
10    /// Server time.
11    #[serde(rename = "server_time")]
12    pub server_time: String,
13    /// Maximum level.
14    #[serde(rename = "max_level")]
15    pub max_level: i32,
16    /// Maximum skill level.
17    #[serde(rename = "max_skill_level")]
18    pub max_skill_level: i32,
19    /// Characters online.
20    #[serde(rename = "characters_online")]
21    pub characters_online: i32,
22    /// Current season details.
23    #[serde(rename = "season", skip_serializing_if = "Option::is_none")]
24    pub season: Option<Box<models::SeasonSchema>>,
25    /// Server announcements.
26    #[serde(rename = "announcements")]
27    pub announcements: Vec<models::AnnouncementSchema>,
28    /// Rate limits.
29    #[serde(rename = "rate_limits")]
30    pub rate_limits: Vec<models::RateLimitSchema>,
31}
32
33impl StatusSchema {
34    pub fn new(
35        version: String,
36        server_time: String,
37        max_level: i32,
38        max_skill_level: i32,
39        characters_online: i32,
40        announcements: Vec<models::AnnouncementSchema>,
41        rate_limits: Vec<models::RateLimitSchema>,
42    ) -> StatusSchema {
43        StatusSchema {
44            version,
45            server_time,
46            max_level,
47            max_skill_level,
48            characters_online,
49            season: None,
50            announcements,
51            rate_limits,
52        }
53    }
54}