use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use crate::{Height, Timestamp};
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[serde(rename_all = "camelCase")]
pub struct DifficultyAdjustment {
#[schemars(example = 44.4)]
pub progress_percent: f64,
#[schemars(example = 2.5)]
pub difficulty_change: f64,
#[schemars(example = 1627762478000_u64)]
pub estimated_retarget_date: u64,
#[schemars(example = 1121)]
pub remaining_blocks: u32,
#[schemars(example = 665977000_u64)]
pub remaining_time: u64,
#[schemars(example = -4.8)]
pub previous_retarget: f64,
#[schemars(example = 1627000000_u64)]
pub previous_time: Timestamp,
#[schemars(example = 741888)]
pub next_retarget_height: Height,
#[schemars(example = 580000_u64)]
pub time_avg: u64,
#[schemars(example = 580000_u64)]
pub adjusted_time_avg: u64,
#[schemars(example = 0)]
pub time_offset: i64,
#[schemars(example = 1827.21)]
pub expected_blocks: f64,
}