use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "specta", derive(specta::Type))]
pub struct AchievementSchema {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "code")]
pub code: String,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "points")]
pub points: i32,
#[serde(rename = "objectives")]
pub objectives: Vec<models::AchievementObjectiveSchema>,
#[serde(rename = "rewards")]
pub rewards: Box<models::AchievementRewardsSchema>,
}
impl AchievementSchema {
pub fn new(
name: String,
code: String,
description: String,
points: i32,
objectives: Vec<models::AchievementObjectiveSchema>,
rewards: models::AchievementRewardsSchema,
) -> AchievementSchema {
AchievementSchema {
name,
code,
description,
points,
objectives,
rewards: Box::new(rewards),
}
}
}