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

use super::{Height, Timestamp};

/// A single difficulty data point in the hashrate summary.
#[derive(Debug, Serialize, Deserialize, JsonSchema)]
pub struct DifficultyEntry {
    /// Unix timestamp of the difficulty adjustment
    pub time: Timestamp,
    /// Block height of the adjustment
    pub height: Height,
    /// Difficulty value
    #[schemars(example = 110_451_832_649_830.94)]
    pub difficulty: f64,
    /// Adjustment ratio (new/previous, e.g. 1.068 = +6.8%)
    #[schemars(example = 1.068)]
    pub adjustment: f64,
}
