use super::NnsGovernanceReportContext;
#[cfg(feature = "host")]
use candid::CandidType;
use serde::{Deserialize as SerdeDeserialize, Serialize};
#[derive(Clone, Debug, Eq, PartialEq, SerdeDeserialize, Serialize)]
pub struct NnsGovernanceRewardEventReport {
#[serde(flatten)]
pub context: NnsGovernanceReportContext,
pub reward_event: NnsGovernanceRewardEvent,
}
#[cfg_attr(feature = "host", derive(CandidType))]
#[derive(Clone, Debug, Eq, PartialEq, SerdeDeserialize, Serialize)]
pub struct NnsGovernanceRewardEvent {
pub rounds_since_last_distribution: Option<u64>,
pub day_after_genesis: u64,
pub actual_timestamp_seconds: u64,
pub total_available_e8s_equivalent: u64,
pub latest_round_available_e8s_equivalent: Option<u64>,
pub distributed_e8s_equivalent: u64,
pub settled_proposals: Vec<NnsGovernanceProposalId>,
}
#[cfg_attr(feature = "host", derive(CandidType))]
#[derive(Clone, Debug, Eq, PartialEq, SerdeDeserialize, Serialize)]
pub struct NnsGovernanceProposalId {
pub id: u64,
}
#[derive(Clone, Debug, Eq, PartialEq, SerdeDeserialize, Serialize)]
pub struct NnsGovernanceMaturityModulationReport {
#[serde(flatten)]
pub context: NnsGovernanceReportContext,
pub maturity_modulation: Option<NnsGovernanceMaturityModulation>,
}
#[cfg_attr(feature = "host", derive(CandidType))]
#[derive(Clone, Debug, Eq, PartialEq, SerdeDeserialize, Serialize)]
pub struct NnsGovernanceMaturityModulation {
pub current_value_permyriad: Option<i32>,
pub updated_at_timestamp_seconds: Option<u64>,
}