Skip to main content

artifacts/models/
raid_instance_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 RaidInstanceSchema {
7    /// Weekly raid opening datetime in UTC.
8    #[serde(rename = "starts_at")]
9    pub starts_at: String,
10    /// Weekly raid planned closing datetime in UTC.
11    #[serde(rename = "ends_at")]
12    pub ends_at: String,
13    /// Current status of this weekly raid instance.
14    #[serde(rename = "status")]
15    pub status: models::RaidStatus,
16    /// Shared HP pool when this raid instance starts.
17    #[serde(rename = "total_hp")]
18    pub total_hp: u32,
19    /// Remaining shared HP pool for this raid instance.
20    #[serde(rename = "remaining_hp")]
21    pub remaining_hp: u32,
22    /// Number of accounts that contributed during this raid instance.
23    #[serde(rename = "participant_count", skip_serializing_if = "Option::is_none")]
24    pub participant_count: Option<u32>,
25    /// Datetime when this raid instance actually ended.
26    #[serde(rename = "ended_at", skip_serializing_if = "Option::is_none")]
27    pub ended_at: Option<String>,
28    /// Final result for this raid instance.
29    #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
30    pub result: Option<models::RaidInstanceResult>,
31    /// Datetime when rewards were distributed for this raid instance.
32    #[serde(
33        rename = "rewards_distributed_at",
34        skip_serializing_if = "Option::is_none"
35    )]
36    pub rewards_distributed_at: Option<String>,
37}
38
39impl RaidInstanceSchema {
40    pub fn new(
41        starts_at: String,
42        ends_at: String,
43        status: models::RaidStatus,
44        total_hp: u32,
45        remaining_hp: u32,
46    ) -> RaidInstanceSchema {
47        RaidInstanceSchema {
48            starts_at,
49            ends_at,
50            status,
51            total_hp,
52            remaining_hp,
53            participant_count: None,
54            ended_at: None,
55            result: None,
56            rewards_distributed_at: None,
57        }
58    }
59}