use schemars::JsonSchema;
use serde::{Deserialize, Serialize};

use super::{DifficultyEntry, HashrateEntry};

/// Summary of network hashrate and difficulty data.
#[derive(Debug, Serialize, Deserialize, JsonSchema)]
pub struct HashrateSummary {
    /// Historical hashrate data points
    pub hashrates: Vec<HashrateEntry>,
    /// Historical difficulty adjustments
    pub difficulty: Vec<DifficultyEntry>,
    /// Current network hashrate (H/s)
    #[serde(rename = "currentHashrate")]
    #[schemars(example = 700_000_000_000_000_000_000_u128)]
    pub current_hashrate: u128,
    /// Current network difficulty
    #[serde(rename = "currentDifficulty")]
    #[schemars(example = 110_451_832_649_830.94)]
    pub current_difficulty: f64,
}
