artifacts/models/
task_full_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 TaskFullSchema {
7    /// Task objective.
8    #[serde(rename = "code")]
9    pub code: String,
10    /// Task level.
11    #[serde(rename = "level")]
12    pub level: i32,
13    /// The type of task.
14    #[serde(rename = "type")]
15    pub r#type: models::TaskType,
16    /// Minimum amount of task.
17    #[serde(rename = "min_quantity")]
18    pub min_quantity: i32,
19    /// Maximum amount of task.
20    #[serde(rename = "max_quantity")]
21    pub max_quantity: i32,
22    #[serde(rename = "skill", deserialize_with = "Option::deserialize")]
23    pub skill: Option<String>,
24    /// Rewards.
25    #[serde(rename = "rewards")]
26    pub rewards: Box<models::RewardsSchema>,
27}
28
29impl TaskFullSchema {
30    pub fn new(
31        code: String,
32        level: i32,
33        r#type: models::TaskType,
34        min_quantity: i32,
35        max_quantity: i32,
36        skill: Option<String>,
37        rewards: models::RewardsSchema,
38    ) -> TaskFullSchema {
39        TaskFullSchema {
40            code,
41            level,
42            r#type,
43            min_quantity,
44            max_quantity,
45            skill,
46            rewards: Box::new(rewards),
47        }
48    }
49}