artifacts/models/
raid_schema.rs1use 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 RaidSchema {
7 #[serde(rename = "code")]
9 pub code: String,
10 #[serde(rename = "name")]
12 pub name: String,
13 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
15 pub description: Option<String>,
16 #[serde(rename = "monster")]
18 pub monster: String,
19 #[serde(rename = "schedule")]
21 pub schedule: Box<models::RaidScheduleSchema>,
22 #[serde(rename = "rewards", skip_serializing_if = "Option::is_none")]
24 pub rewards: Option<Box<models::RaidRewardsSchema>>,
25 #[serde(rename = "status")]
27 pub status: models::RaidStatus,
28 #[serde(rename = "next_start_at")]
30 pub next_start_at: String,
31 #[serde(rename = "participant_count", skip_serializing_if = "Option::is_none")]
33 pub participant_count: Option<u32>,
34 #[serde(rename = "active_instance", skip_serializing_if = "Option::is_none")]
36 pub active_instance: Option<Box<models::RaidInstanceSchema>>,
37 #[serde(rename = "latest_instance", skip_serializing_if = "Option::is_none")]
39 pub latest_instance: Option<Box<models::RaidInstanceSchema>>,
40}
41
42impl RaidSchema {
43 pub fn new(
44 code: String,
45 name: String,
46 monster: String,
47 schedule: models::RaidScheduleSchema,
48 status: models::RaidStatus,
49 next_start_at: String,
50 ) -> RaidSchema {
51 RaidSchema {
52 code,
53 name,
54 description: None,
55 monster,
56 schedule: Box::new(schedule),
57 rewards: None,
58 status,
59 next_start_at,
60 participant_count: None,
61 active_instance: None,
62 latest_instance: None,
63 }
64 }
65}