use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "specta", derive(specta::Type))]
pub struct AccountAchievementSchema {
#[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::AccountAchievementObjectiveSchema>,
#[serde(rename = "rewards")]
pub rewards: Box<models::AchievementRewardsSchema>,
#[serde(rename = "completed_at", skip_serializing_if = "Option::is_none")]
pub completed_at: Option<String>,
}
impl AccountAchievementSchema {
pub fn new(
name: String,
code: String,
description: String,
points: i32,
objectives: Vec<models::AccountAchievementObjectiveSchema>,
rewards: models::AchievementRewardsSchema,
) -> AccountAchievementSchema {
AccountAchievementSchema {
name,
code,
description,
points,
objectives,
rewards: Box::new(rewards),
completed_at: None,
}
}
}