use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "specta", derive(specta::Type))]
pub struct EventSchema {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "code")]
pub code: String,
#[serde(rename = "content", skip_serializing_if = "Option::is_none")]
pub content: Option<Box<models::EventContentSchema>>,
#[serde(rename = "maps")]
pub maps: Vec<models::EventMapSchema>,
#[serde(rename = "duration")]
pub duration: i32,
#[serde(rename = "rate")]
pub rate: i32,
#[serde(rename = "cooldown", skip_serializing_if = "Option::is_none")]
pub cooldown: Option<i32>,
#[serde(rename = "price", skip_serializing_if = "Option::is_none")]
pub price: Option<i32>,
#[serde(rename = "transition", skip_serializing_if = "Option::is_none")]
pub transition: Option<Box<models::TransitionSchema>>,
#[serde(
rename = "cooldown_expiration",
skip_serializing_if = "Option::is_none"
)]
pub cooldown_expiration: Option<String>,
}
impl EventSchema {
pub fn new(
name: String,
code: String,
maps: Vec<models::EventMapSchema>,
duration: i32,
rate: i32,
) -> EventSchema {
EventSchema {
name,
code,
content: None,
maps,
duration,
rate,
cooldown: None,
price: None,
transition: None,
cooldown_expiration: None,
}
}
}