use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
pub struct AffixTemplateSet {
pub base_id: String,
pub affix_templates: Vec<AffixTemplate>,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct AffixTemplate {
pub ability_id: Option<String>,
pub target_rule_id: Option<String>,
pub stat_type: u64,
pub stat_value_min: f32,
pub stat_value_max: f32,
pub min_tier: u64,
pub max_tier: u64,
pub scope_icon: String,
pub scope_target_name: String,
pub ability_description: Option<String>,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Set {
pub id: u64,
pub display_name: String,
pub expiration_time: String,
pub icon: String,
pub icon_empty: String,
pub icon_maxed: String,
pub url: String,
pub max_tier_id: u64,
pub tiers: Vec<SetTier>,
pub focused_tiers: Vec<SetTier>,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct SetTier {
pub tier_id: u64,
pub scope_identifier: u64,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Template {
pub base_id: String,
pub set_id: u64,
pub max_rerolls: u64,
pub allow_reroll: bool,
pub initial_tiers: u64,
pub reference_template_base_id: String,
pub url: String,
pub tiers: Vec<TemplateTier>,
pub focused: bool,
pub icon_url: String,
pub icon_max_url: String,
pub icon_empty_url: String,
pub max_tier: u64,
pub bg_tier_count: u64,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct TemplateTier {
pub tier_id: u64,
pub affix_template_set_ids: Vec<String>,
pub initial_affix_template_set_ids: Vec<String>,
pub required_unit_tier: u64,
pub required_relic_tier: u64,
pub focused: bool,
}