use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "specta", derive(specta::Type))]
pub struct CharacterSchema {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "account")]
pub account: String,
#[serde(rename = "skin")]
pub skin: models::CharacterSkin,
#[serde(rename = "level")]
pub level: i32,
#[serde(rename = "xp")]
pub xp: i32,
#[serde(rename = "max_xp")]
pub max_xp: i32,
#[serde(rename = "gold")]
pub gold: i32,
#[serde(rename = "speed")]
pub speed: i32,
#[serde(rename = "mining_level")]
pub mining_level: i32,
#[serde(rename = "mining_xp")]
pub mining_xp: i32,
#[serde(rename = "mining_max_xp")]
pub mining_max_xp: i32,
#[serde(rename = "woodcutting_level")]
pub woodcutting_level: i32,
#[serde(rename = "woodcutting_xp")]
pub woodcutting_xp: i32,
#[serde(rename = "woodcutting_max_xp")]
pub woodcutting_max_xp: i32,
#[serde(rename = "fishing_level")]
pub fishing_level: i32,
#[serde(rename = "fishing_xp")]
pub fishing_xp: i32,
#[serde(rename = "fishing_max_xp")]
pub fishing_max_xp: i32,
#[serde(rename = "weaponcrafting_level")]
pub weaponcrafting_level: i32,
#[serde(rename = "weaponcrafting_xp")]
pub weaponcrafting_xp: i32,
#[serde(rename = "weaponcrafting_max_xp")]
pub weaponcrafting_max_xp: i32,
#[serde(rename = "gearcrafting_level")]
pub gearcrafting_level: i32,
#[serde(rename = "gearcrafting_xp")]
pub gearcrafting_xp: i32,
#[serde(rename = "gearcrafting_max_xp")]
pub gearcrafting_max_xp: i32,
#[serde(rename = "jewelrycrafting_level")]
pub jewelrycrafting_level: i32,
#[serde(rename = "jewelrycrafting_xp")]
pub jewelrycrafting_xp: i32,
#[serde(rename = "jewelrycrafting_max_xp")]
pub jewelrycrafting_max_xp: i32,
#[serde(rename = "cooking_level")]
pub cooking_level: i32,
#[serde(rename = "cooking_xp")]
pub cooking_xp: i32,
#[serde(rename = "cooking_max_xp")]
pub cooking_max_xp: i32,
#[serde(rename = "alchemy_level")]
pub alchemy_level: i32,
#[serde(rename = "alchemy_xp")]
pub alchemy_xp: i32,
#[serde(rename = "alchemy_max_xp")]
pub alchemy_max_xp: i32,
#[serde(rename = "hp")]
pub hp: i32,
#[serde(rename = "max_hp")]
pub max_hp: i32,
#[serde(rename = "haste")]
pub haste: i32,
#[serde(rename = "critical_strike")]
pub critical_strike: i32,
#[serde(rename = "wisdom")]
pub wisdom: i32,
#[serde(rename = "prospecting")]
pub prospecting: i32,
#[serde(rename = "initiative")]
pub initiative: i32,
#[serde(rename = "threat")]
pub threat: i32,
#[serde(rename = "attack_fire")]
pub attack_fire: i32,
#[serde(rename = "attack_earth")]
pub attack_earth: i32,
#[serde(rename = "attack_water")]
pub attack_water: i32,
#[serde(rename = "attack_air")]
pub attack_air: i32,
#[serde(rename = "dmg")]
pub dmg: i32,
#[serde(rename = "dmg_fire")]
pub dmg_fire: i32,
#[serde(rename = "dmg_earth")]
pub dmg_earth: i32,
#[serde(rename = "dmg_water")]
pub dmg_water: i32,
#[serde(rename = "dmg_air")]
pub dmg_air: i32,
#[serde(rename = "res_fire")]
pub res_fire: i32,
#[serde(rename = "res_earth")]
pub res_earth: i32,
#[serde(rename = "res_water")]
pub res_water: i32,
#[serde(rename = "res_air")]
pub res_air: i32,
#[serde(rename = "effects", skip_serializing_if = "Option::is_none")]
pub effects: Option<Vec<models::StorageEffectSchema>>,
#[serde(rename = "x")]
pub x: i32,
#[serde(rename = "y")]
pub y: i32,
#[serde(rename = "layer")]
pub layer: models::MapLayer,
#[serde(rename = "map_id")]
pub map_id: i32,
#[serde(rename = "cooldown")]
pub cooldown: i32,
#[serde(
rename = "cooldown_expiration",
skip_serializing_if = "Option::is_none"
)]
pub cooldown_expiration: Option<String>,
#[serde(rename = "weapon_slot")]
pub weapon_slot: String,
#[serde(rename = "rune_slot")]
pub rune_slot: String,
#[serde(rename = "shield_slot")]
pub shield_slot: String,
#[serde(rename = "helmet_slot")]
pub helmet_slot: String,
#[serde(rename = "body_armor_slot")]
pub body_armor_slot: String,
#[serde(rename = "leg_armor_slot")]
pub leg_armor_slot: String,
#[serde(rename = "boots_slot")]
pub boots_slot: String,
#[serde(rename = "ring1_slot")]
pub ring1_slot: String,
#[serde(rename = "ring2_slot")]
pub ring2_slot: String,
#[serde(rename = "amulet_slot")]
pub amulet_slot: String,
#[serde(rename = "artifact1_slot")]
pub artifact1_slot: String,
#[serde(rename = "artifact2_slot")]
pub artifact2_slot: String,
#[serde(rename = "artifact3_slot")]
pub artifact3_slot: String,
#[serde(rename = "utility1_slot")]
pub utility1_slot: String,
#[serde(rename = "utility1_slot_quantity")]
pub utility1_slot_quantity: u32,
#[serde(rename = "utility2_slot")]
pub utility2_slot: String,
#[serde(rename = "utility2_slot_quantity")]
pub utility2_slot_quantity: u32,
#[serde(rename = "bag_slot")]
pub bag_slot: String,
#[serde(rename = "task")]
pub task: String,
#[serde(rename = "task_type")]
pub task_type: String,
#[serde(rename = "task_progress")]
pub task_progress: i32,
#[serde(rename = "task_total")]
pub task_total: i32,
#[serde(rename = "inventory_max_items")]
pub inventory_max_items: i32,
#[serde(rename = "inventory", skip_serializing_if = "Option::is_none")]
pub inventory: Option<Vec<models::InventorySlot>>,
}
impl CharacterSchema {
pub fn new(
name: String,
account: String,
skin: models::CharacterSkin,
level: i32,
xp: i32,
max_xp: i32,
gold: i32,
speed: i32,
mining_level: i32,
mining_xp: i32,
mining_max_xp: i32,
woodcutting_level: i32,
woodcutting_xp: i32,
woodcutting_max_xp: i32,
fishing_level: i32,
fishing_xp: i32,
fishing_max_xp: i32,
weaponcrafting_level: i32,
weaponcrafting_xp: i32,
weaponcrafting_max_xp: i32,
gearcrafting_level: i32,
gearcrafting_xp: i32,
gearcrafting_max_xp: i32,
jewelrycrafting_level: i32,
jewelrycrafting_xp: i32,
jewelrycrafting_max_xp: i32,
cooking_level: i32,
cooking_xp: i32,
cooking_max_xp: i32,
alchemy_level: i32,
alchemy_xp: i32,
alchemy_max_xp: i32,
hp: i32,
max_hp: i32,
haste: i32,
critical_strike: i32,
wisdom: i32,
prospecting: i32,
initiative: i32,
threat: i32,
attack_fire: i32,
attack_earth: i32,
attack_water: i32,
attack_air: i32,
dmg: i32,
dmg_fire: i32,
dmg_earth: i32,
dmg_water: i32,
dmg_air: i32,
res_fire: i32,
res_earth: i32,
res_water: i32,
res_air: i32,
x: i32,
y: i32,
layer: models::MapLayer,
map_id: i32,
cooldown: i32,
weapon_slot: String,
rune_slot: String,
shield_slot: String,
helmet_slot: String,
body_armor_slot: String,
leg_armor_slot: String,
boots_slot: String,
ring1_slot: String,
ring2_slot: String,
amulet_slot: String,
artifact1_slot: String,
artifact2_slot: String,
artifact3_slot: String,
utility1_slot: String,
utility1_slot_quantity: u32,
utility2_slot: String,
utility2_slot_quantity: u32,
bag_slot: String,
task: String,
task_type: String,
task_progress: i32,
task_total: i32,
inventory_max_items: i32,
) -> CharacterSchema {
CharacterSchema {
name,
account,
skin,
level,
xp,
max_xp,
gold,
speed,
mining_level,
mining_xp,
mining_max_xp,
woodcutting_level,
woodcutting_xp,
woodcutting_max_xp,
fishing_level,
fishing_xp,
fishing_max_xp,
weaponcrafting_level,
weaponcrafting_xp,
weaponcrafting_max_xp,
gearcrafting_level,
gearcrafting_xp,
gearcrafting_max_xp,
jewelrycrafting_level,
jewelrycrafting_xp,
jewelrycrafting_max_xp,
cooking_level,
cooking_xp,
cooking_max_xp,
alchemy_level,
alchemy_xp,
alchemy_max_xp,
hp,
max_hp,
haste,
critical_strike,
wisdom,
prospecting,
initiative,
threat,
attack_fire,
attack_earth,
attack_water,
attack_air,
dmg,
dmg_fire,
dmg_earth,
dmg_water,
dmg_air,
res_fire,
res_earth,
res_water,
res_air,
effects: None,
x,
y,
layer,
map_id,
cooldown,
cooldown_expiration: None,
weapon_slot,
rune_slot,
shield_slot,
helmet_slot,
body_armor_slot,
leg_armor_slot,
boots_slot,
ring1_slot,
ring2_slot,
amulet_slot,
artifact1_slot,
artifact2_slot,
artifact3_slot,
utility1_slot,
utility1_slot_quantity,
utility2_slot,
utility2_slot_quantity,
bag_slot,
task,
task_type,
task_progress,
task_total,
inventory_max_items,
inventory: None,
}
}
}