use serde::Deserialize;

#[derive(Deserialize)]
#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))]
#[serde(rename_all = "PascalCase")]
pub struct RoleSkinData {
    pub id: i32,
    pub role_id: i32,
    pub suit_weapon_skin_id: i32,
    pub head_id: i32,
    pub quality_id: i32,
    #[cfg(feature = "strict_json_fields")]
    pub name: String,
    #[cfg(feature = "strict_json_fields")]
    pub title_name: String,
    #[cfg(feature = "strict_json_fields")]
    pub sub_dec_name: String,
    #[cfg(feature = "strict_json_fields")]
    pub type_description: String,
    #[cfg(feature = "strict_json_fields")]
    pub attributes_description: String,
    #[cfg(feature = "strict_json_fields")]
    pub bg_description: String,
    #[cfg(feature = "strict_json_fields")]
    pub icon_middle: String,
    #[cfg(feature = "strict_json_fields")]
    pub icon_small: String,
    #[cfg(feature = "strict_json_fields")]
    pub item_access: Vec<i32>,
    #[cfg(feature = "strict_json_fields")]
    pub sort_index: i32,
    #[cfg(feature = "strict_json_fields")]
    pub red_dot_disable_rule: i32,
    #[cfg(feature = "strict_json_fields")]
    pub show_in_bag: bool,
    #[cfg(feature = "strict_json_fields")]
    pub obtained_show_description: String,
    #[cfg(feature = "strict_json_fields")]
    pub icon: String,
    #[cfg(feature = "strict_json_fields")]
    pub function_desc: String,
    #[cfg(feature = "strict_json_fields")]
    pub first_obtain_desc: String,
    #[cfg(feature = "strict_json_fields")]
    pub quality: u8,
    #[cfg(feature = "strict_json_fields")]
    pub tag: String,
    #[cfg(feature = "strict_json_fields")]
    pub role_head_icon_circle: String,
    #[cfg(feature = "strict_json_fields")]
    pub role_head_icon_large: String,
    #[cfg(feature = "strict_json_fields")]
    pub role_head_icon_big: String,
    #[cfg(feature = "strict_json_fields")]
    pub card: String,
    #[cfg(feature = "strict_json_fields")]
    pub role_head_icon: String,
    #[cfg(feature = "strict_json_fields")]
    pub preview_role_card: String,
    #[cfg(feature = "strict_json_fields")]
    pub buy_shop_preview_role_card: String,
    #[cfg(feature = "strict_json_fields")]
    pub formation_role_card: String,
    #[cfg(feature = "strict_json_fields")]
    pub role_stand: String,
    #[cfg(feature = "strict_json_fields")]
    pub suit_weapon_skin_color: String,
    #[cfg(feature = "strict_json_fields")]
    pub role_obtain_color1: String,
    #[cfg(feature = "strict_json_fields")]
    pub role_obtain_color2: String,
    #[cfg(feature = "strict_json_fields")]
    pub role_portrait: String,
    #[cfg(feature = "strict_json_fields")]
    pub mesh_id: i32,
    #[cfg(feature = "strict_json_fields")]
    pub ui_mesh_id: i32,
    #[cfg(feature = "strict_json_fields")]
    pub role_body: String,
    #[serde(rename = "UiScenePerformanceABP")]
    pub ui_scene_performance_abp: String,
    #[cfg(feature = "strict_json_fields")]
    pub foot_step_state: String,
    #[cfg(feature = "strict_json_fields")]
    pub pay_shop_preview_role_texture_path: String,
    #[cfg(feature = "strict_json_fields")]
    pub pay_shop_preview_role_texture_bg_path: String,
    #[cfg(feature = "strict_json_fields")]
    pub pay_shop_preview_weapon_texture_path: String,
    #[cfg(feature = "strict_json_fields")]
    pub pay_shop_preview_buy_role_texture_path: String,
    #[cfg(feature = "strict_json_fields")]
    pub pay_shop_preview_buy_role_suit_weapon_texture_path: String,
    #[cfg(feature = "strict_json_fields")]
    pub share_texture_path: String,
    #[cfg(feature = "strict_json_fields")]
    pub spine_skeleton_data: String,
    #[cfg(feature = "strict_json_fields")]
    pub small_spine_atlas: String,
}
