Skip to main content

artifacts/models/
achievement_objective_schema.rs

1use crate::models;
2use serde::{Deserialize, Serialize};
3
4/// AchievementObjectiveSchema : Schema for a single objective within an achievement.
5#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6#[cfg_attr(feature = "specta", derive(specta::Type))]
7pub struct AchievementObjectiveSchema {
8    /// Type of objective.
9    #[serde(rename = "type")]
10    pub r#type: models::AchievementType,
11    /// Target of the objective (e.g., item code, monster code).
12    #[serde(rename = "target", skip_serializing_if = "Option::is_none")]
13    pub target: Option<String>,
14    /// Total required for this objective.
15    #[serde(rename = "total")]
16    pub total: i32,
17}
18
19impl AchievementObjectiveSchema {
20    /// Schema for a single objective within an achievement.
21    pub fn new(r#type: models::AchievementType, total: i32) -> AchievementObjectiveSchema {
22        AchievementObjectiveSchema {
23            r#type,
24            target: None,
25            total,
26        }
27    }
28}