use serde::{Deserialize as SerdeDeserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, SerdeDeserialize, Serialize)]
#[serde(rename_all = "snake_case", tag = "kind", content = "value")]
pub enum SnsNeuronDissolveState {
DissolveDelaySeconds(u64),
WhenDissolvedTimestampSeconds(u64),
}
#[derive(Clone, Debug, Eq, PartialEq, SerdeDeserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct SnsNeuronRow {
pub neuron_id: String,
pub cached_neuron_stake_e8s: u64,
pub maturity_e8s_equivalent: u64,
pub staked_maturity_e8s_equivalent: Option<u64>,
pub created_timestamp_seconds: u64,
pub created_at: String,
pub source_nns_neuron_id: Option<u64>,
pub auto_stake_maturity: Option<bool>,
pub aging_since_timestamp_seconds: u64,
pub dissolve_state: Option<SnsNeuronDissolveState>,
pub voting_power_percentage_multiplier: u64,
pub vesting_period_seconds: Option<u64>,
pub neuron_fees_e8s: u64,
}