artifacts/models/
give_item_data_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 GiveItemDataSchema {
7    /// Cooldown details.
8    #[serde(rename = "cooldown")]
9    pub cooldown: Box<models::CooldownSchema>,
10    /// Items given.
11    #[serde(rename = "items")]
12    pub items: Vec<models::SimpleItemSchema>,
13    /// Character details of the receiving character.
14    #[serde(rename = "receiver_character")]
15    pub receiver_character: Box<models::CharacterSchema>,
16    /// Character details of the sending character.
17    #[serde(rename = "character")]
18    pub character: Box<models::CharacterSchema>,
19}
20
21impl GiveItemDataSchema {
22    pub fn new(
23        cooldown: models::CooldownSchema,
24        items: Vec<models::SimpleItemSchema>,
25        receiver_character: models::CharacterSchema,
26        character: models::CharacterSchema,
27    ) -> GiveItemDataSchema {
28        GiveItemDataSchema {
29            cooldown: Box::new(cooldown),
30            items,
31            receiver_character: Box::new(receiver_character),
32            character: Box::new(character),
33        }
34    }
35}
36
37impl crate::traits::GetCooldown for GiveItemDataSchema {
38    fn get_cooldown(&self) -> &crate::models::CooldownSchema {
39        &self.cooldown
40    }
41}
42
43impl crate::traits::GetCharacter for GiveItemDataSchema {
44    fn get_character(&self) -> &crate::models::CharacterSchema {
45        &self.character
46    }
47}