artifacts/models/
task_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 TaskSchema {
7    /// Task objective.
8    #[serde(rename = "code")]
9    pub code: String,
10    /// The type of task.
11    #[serde(rename = "type")]
12    pub r#type: models::TaskType,
13    /// The total required to complete the task.
14    #[serde(rename = "total")]
15    pub total: i32,
16    /// Rewards for completing the task.
17    #[serde(rename = "rewards")]
18    pub rewards: Box<models::RewardsSchema>,
19}
20
21impl TaskSchema {
22    pub fn new(
23        code: String,
24        r#type: models::TaskType,
25        total: i32,
26        rewards: models::RewardsSchema,
27    ) -> TaskSchema {
28        TaskSchema {
29            code,
30            r#type,
31            total,
32            rewards: Box::new(rewards),
33        }
34    }
35}