artifacts/models/
event_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 EventSchema {
7    /// Name of the event.
8    #[serde(rename = "name")]
9    pub name: String,
10    /// Code of the event.
11    #[serde(rename = "code")]
12    pub code: String,
13    /// Content of the event.
14    #[serde(rename = "content")]
15    pub content: Box<models::EventContentSchema>,
16    /// Map list of the event.
17    #[serde(rename = "maps")]
18    pub maps: Vec<models::EventMapSchema>,
19    /// Duration in minutes.
20    #[serde(rename = "duration")]
21    pub duration: i32,
22    /// Rate spawn of the event. (1/rate every minute)
23    #[serde(rename = "rate")]
24    pub rate: i32,
25}
26
27impl EventSchema {
28    pub fn new(
29        name: String,
30        code: String,
31        content: models::EventContentSchema,
32        maps: Vec<models::EventMapSchema>,
33        duration: i32,
34        rate: i32,
35    ) -> EventSchema {
36        EventSchema {
37            name,
38            code,
39            content: Box::new(content),
40            maps,
41            duration,
42            rate,
43        }
44    }
45}