use milkyway_std_derive::CosmwasmExt;
/// LegacyOperatorParams represent previous format that we where using to store
/// a operator params.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/milkyway.restaking.legacy.LegacyOperatorParams")]
pub struct LegacyOperatorParams {
    /// CommissionRate defines the commission rate charged to delegators, as a
    /// fraction.
    #[prost(string, tag = "1")]
    pub commission_rate: ::prost::alloc::string::String,
    /// JoinedServicesIDs defines the list of service IDs that the operator has
    /// joined.
    #[prost(uint32, repeated, packed = "false", tag = "2")]
    #[serde(alias = "joined_servicesIDs")]
    #[serde(
        serialize_with = "crate::serde::as_str_vec::serialize",
        deserialize_with = "crate::serde::as_str_vec::deserialize"
    )]
    pub joined_services_ids: ::prost::alloc::vec::Vec<u32>,
}
/// LegacyServiceParams represent the previous format that we where using to
/// store the params that have been set for an individual service.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
    Clone,
    PartialEq,
    Eq,
    ::prost::Message,
    ::serde::Serialize,
    ::serde::Deserialize,
    ::schemars::JsonSchema,
    CosmwasmExt,
)]
#[proto_message(type_url = "/milkyway.restaking.legacy.LegacyServiceParams")]
pub struct LegacyServiceParams {
    /// SlashFraction defines the fraction of the delegation that will be slashed
    /// in case of a misbehavior.
    #[prost(string, tag = "1")]
    pub slash_fraction: ::prost::alloc::string::String,
    /// WhitelistedPoolsIDs defines the list of pool IDs that are providing
    /// cryptoeconomic security to the service.
    #[prost(uint32, repeated, packed = "false", tag = "2")]
    #[serde(alias = "whitelisted_poolsIDs")]
    #[serde(
        serialize_with = "crate::serde::as_str_vec::serialize",
        deserialize_with = "crate::serde::as_str_vec::deserialize"
    )]
    pub whitelisted_pools_ids: ::prost::alloc::vec::Vec<u32>,
    /// WhitelistedOperatorsIDs defines the list of operator IDs that are allowed
    /// to validate this service.
    #[prost(uint32, repeated, packed = "false", tag = "3")]
    #[serde(alias = "whitelisted_operatorsIDs")]
    #[serde(
        serialize_with = "crate::serde::as_str_vec::serialize",
        deserialize_with = "crate::serde::as_str_vec::deserialize"
    )]
    pub whitelisted_operators_ids: ::prost::alloc::vec::Vec<u32>,
}
