// This file is @generated by prost-build.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BasicDataModelBin {
    #[prost(string, tag = "1")]
    pub nick_name: ::prost::alloc::string::String,
    #[prost(uint32, tag = "2")]
    pub level: u32,
    #[prost(uint32, tag = "3")]
    pub exp: u32,
    #[prost(uint32, tag = "4")]
    pub profile_icon: u32,
    #[prost(int32, tag = "5")]
    pub frontend_avatar_id: i32,
    #[prost(int32, tag = "6")]
    pub beginner_procedure_id: i32,
    #[prost(uint32, tag = "7")]
    pub selected_post_girl_id: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LockModelBin {
    #[prost(int32, repeated, tag = "1")]
    pub unlock_list: ::prost::alloc::vec::Vec<i32>,
    #[prost(map = "uint32, uint32", tag = "2")]
    pub quick_access_list: ::std::collections::HashMap<u32, u32>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarSkillBin {
    #[prost(uint32, tag = "1")]
    pub skill_type: u32,
    #[prost(uint32, tag = "2")]
    pub level: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvatarBin {
    #[prost(uint32, tag = "1")]
    pub template_id: u32,
    #[prost(uint32, tag = "2")]
    pub level: u32,
    #[prost(uint32, tag = "3")]
    pub exp: u32,
    #[prost(uint32, tag = "4")]
    pub star: u32,
    #[prost(uint32, tag = "5")]
    pub rank: u32,
    #[prost(uint32, tag = "6")]
    pub unlocked_talent_num: u32,
    #[prost(uint32, tag = "9")]
    pub weapon_uid: u32,
    #[prost(message, repeated, tag = "7")]
    pub avatar_skill_list: ::prost::alloc::vec::Vec<AvatarSkillBin>,
    #[prost(bool, repeated, tag = "8")]
    pub talent_switch_list: ::prost::alloc::vec::Vec<bool>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoleModelBin {
    #[prost(message, repeated, tag = "1")]
    pub avatar_list: ::prost::alloc::vec::Vec<AvatarBin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceItemBin {
    #[prost(uint32, tag = "1")]
    pub template_id: u32,
    #[prost(int32, tag = "2")]
    pub num: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WeaponBin {
    #[prost(uint32, tag = "1")]
    pub template_id: u32,
    #[prost(uint32, tag = "2")]
    pub uid: u32,
    #[prost(uint32, tag = "3")]
    pub level: u32,
    #[prost(uint32, tag = "4")]
    pub exp: u32,
    #[prost(uint32, tag = "5")]
    pub star: u32,
    #[prost(uint32, tag = "6")]
    pub refine_level: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemModelBin {
    #[prost(message, repeated, tag = "1")]
    pub resource_list: ::prost::alloc::vec::Vec<ResourceItemBin>,
    #[prost(message, repeated, tag = "2")]
    pub weapon_list: ::prost::alloc::vec::Vec<WeaponBin>,
    #[prost(uint32, tag = "10")]
    pub item_uid_counter: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TransformBin {
    #[prost(double, repeated, tag = "1")]
    pub position: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "2")]
    pub rotation: ::prost::alloc::vec::Vec<f64>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MainCityTimeBin {
    #[prost(uint32, tag = "1")]
    pub minutes: u32,
    #[prost(uint32, tag = "2")]
    pub day: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MainCityModelBin {
    #[prost(message, optional, tag = "1")]
    pub transform: ::core::option::Option<TransformBin>,
    #[prost(message, optional, tag = "2")]
    pub time: ::core::option::Option<MainCityTimeBin>,
    #[prost(uint32, tag = "3")]
    pub section_id: u32,
}
/// The progress record of a specified rarity. All maps' keys are category_guarantee_policy_tag.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaProgressBin {
    /// The pity (counting how many pulls) of this pull (in previous record) or the next pull (in status).
    #[prost(uint32, tag = "1")]
    pub pity: u32,
    /// The failure times of this category.
    #[prost(map = "string, uint32", tag = "2")]
    pub categories_progress_map: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        u32,
    >,
    /// The selected priority (category) for a Chooseable category.
    #[prost(map = "string, string", tag = "3")]
    pub categories_chosen_guarantee_category_map: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
    /// The selectedpriority (a specified item) for a Chooseable category.
    #[prost(map = "string, uint32", tag = "4")]
    pub categories_chosen_guarantee_item_map: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        u32,
    >,
    /// The failure times for selected priority (a specified item).
    #[prost(map = "string, uint32", tag = "5")]
    pub categories_chosen_guarantee_progress_map: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        u32,
    >,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaExtraItemBin {
    #[prost(uint32, tag = "1")]
    pub extra_item_id: u32,
    #[prost(uint32, tag = "2")]
    pub extra_item_count: u32,
    /// How many objects of the main item obtained in gacha is present in the player's bag (before gacha).
    /// This is used for something like converting when there're extra characters.
    #[prost(uint32, tag = "3")]
    pub currently_gained: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaRecordBin {
    #[prost(int64, tag = "1")]
    pub pull_timestamp: i64,
    #[prost(uint32, tag = "2")]
    pub obtained_item_id: u32,
    #[prost(uint32, tag = "3")]
    pub gacha_id: u32,
    /// The progress BEFORE this gacha is performed. uint32 is rarity.
    #[prost(map = "uint32, message", tag = "4")]
    pub progress_map: ::std::collections::HashMap<u32, GachaProgressBin>,
    #[prost(message, optional, tag = "5")]
    pub extra_item_bin: ::core::option::Option<GachaExtraItemBin>,
    #[prost(enumeration = "GachaAddedItemType", tag = "6")]
    pub item_type: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaStatusBin {
    #[prost(map = "uint32, message", tag = "1")]
    pub rarity_status_map: ::std::collections::HashMap<u32, GachaProgressBin>,
    #[prost(map = "string, uint32", tag = "2")]
    pub discount_usage_map: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        u32,
    >,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GachaModelBin {
    /// Gacha Status query. string is sharing_guarantee_info_category.
    #[prost(map = "string, message", tag = "1")]
    pub gacha_status_map: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        GachaStatusBin,
    >,
    #[prost(message, repeated, tag = "2")]
    pub gacha_records: ::prost::alloc::vec::Vec<GachaRecordBin>,
    #[prost(uint32, tag = "3")]
    pub random_number: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerDataBin {
    #[prost(message, optional, tag = "1")]
    pub basic_data_model: ::core::option::Option<BasicDataModelBin>,
    #[prost(message, optional, tag = "2")]
    pub lock_model: ::core::option::Option<LockModelBin>,
    #[prost(message, optional, tag = "3")]
    pub role_model: ::core::option::Option<RoleModelBin>,
    #[prost(message, optional, tag = "4")]
    pub item_model: ::core::option::Option<ItemModelBin>,
    #[prost(message, optional, tag = "5")]
    pub main_city_model: ::core::option::Option<MainCityModelBin>,
    #[prost(message, optional, tag = "6")]
    pub gacha_model: ::core::option::Option<GachaModelBin>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum GachaAddedItemType {
    None = 0,
    Weapon = 1,
    Character = 2,
    Bangboo = 3,
}
impl GachaAddedItemType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            GachaAddedItemType::None => "GACHA_ADDED_ITEM_TYPE_NONE",
            GachaAddedItemType::Weapon => "GACHA_ADDED_ITEM_TYPE_WEAPON",
            GachaAddedItemType::Character => "GACHA_ADDED_ITEM_TYPE_CHARACTER",
            GachaAddedItemType::Bangboo => "GACHA_ADDED_ITEM_TYPE_BANGBOO",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "GACHA_ADDED_ITEM_TYPE_NONE" => Some(Self::None),
            "GACHA_ADDED_ITEM_TYPE_WEAPON" => Some(Self::Weapon),
            "GACHA_ADDED_ITEM_TYPE_CHARACTER" => Some(Self::Character),
            "GACHA_ADDED_ITEM_TYPE_BANGBOO" => Some(Self::Bangboo),
            _ => None,
        }
    }
}
