pub struct OneShotSats {
    pub price_paid_state: PricePaidState,
    pub unrealized_block_state: UnrealizedState,
    pub unrealized_date_state: Option<UnrealizedState>,
}

pub struct UnrealizedState {
    supply_in_profit: Sats,
    // supply_in_loss: Sats,
    unrealized_profit: Dollars,
    unrealized_loss: Dollars,
}

// Why option ?
#[derive(Default, Debug)]
pub struct PricePaidState {
    pp_p5: Option<Dollars>,
    pp_p10: Option<Dollars>,
    pp_p15: Option<Dollars>,
    pp_p20: Option<Dollars>,
    pp_p25: Option<Dollars>,
    pp_p30: Option<Dollars>,
    pp_p35: Option<Dollars>,
    pp_p40: Option<Dollars>,
    pp_p45: Option<Dollars>,
    pp_median: Option<Dollars>,
    pp_p55: Option<Dollars>,
    pp_p60: Option<Dollars>,
    pp_p65: Option<Dollars>,
    pp_p70: Option<Dollars>,
    pp_p75: Option<Dollars>,
    pp_p80: Option<Dollars>,
    pp_p85: Option<Dollars>,
    pp_p90: Option<Dollars>,
    pp_p95: Option<Dollars>,

    processed_amount: Sats,
}

pub struct PricePaidStateFull {
    pp_p1: Option<Dollars>,
    pp_p2: Option<Dollars>,
    pp_p3: Option<Dollars>,
    pp_p4: Option<Dollars>,
    pp_p5: Option<Dollars>,
    pp_p6: Option<Dollars>,
    pp_p7: Option<Dollars>,
    pp_p8: Option<Dollars>,
    pp_p9: Option<Dollars>,
    pp_p10: Option<Dollars>,
    pp_p11: Option<Dollars>,
    pp_p12: Option<Dollars>,
    pp_p13: Option<Dollars>,
    pp_p14: Option<Dollars>,
    pp_p15: Option<Dollars>,
    pp_p16: Option<Dollars>,
    pp_p17: Option<Dollars>,
    pp_p18: Option<Dollars>,
    pp_p19: Option<Dollars>,
    pp_p20: Option<Dollars>,
    pp_p21: Option<Dollars>,
    pp_p22: Option<Dollars>,
    pp_p23: Option<Dollars>,
    pp_p24: Option<Dollars>,
    pp_p25: Option<Dollars>,
    pp_p26: Option<Dollars>,
    pp_p27: Option<Dollars>,
    pp_p28: Option<Dollars>,
    pp_p29: Option<Dollars>,
    pp_p30: Option<Dollars>,
    pp_p31: Option<Dollars>,
    pp_p32: Option<Dollars>,
    pp_p33: Option<Dollars>,
    pp_p34: Option<Dollars>,
    pp_p35: Option<Dollars>,
    pp_p36: Option<Dollars>,
    pp_p37: Option<Dollars>,
    pp_p38: Option<Dollars>,
    pp_p39: Option<Dollars>,
    pp_p40: Option<Dollars>,
    pp_p41: Option<Dollars>,
    pp_p42: Option<Dollars>,
    pp_p43: Option<Dollars>,
    pp_p44: Option<Dollars>,
    pp_p45: Option<Dollars>,
    pp_p46: Option<Dollars>,
    pp_p47: Option<Dollars>,
    pp_p48: Option<Dollars>,
    pp_p49: Option<Dollars>,
    pp_p50: Option<Dollars>,
    pp_p51: Option<Dollars>,
    pp_p52: Option<Dollars>,
    pp_p53: Option<Dollars>,
    pp_p54: Option<Dollars>,
    pp_p55: Option<Dollars>,
    pp_p56: Option<Dollars>,
    pp_p57: Option<Dollars>,
    pp_p58: Option<Dollars>,
    pp_p59: Option<Dollars>,
    pp_p60: Option<Dollars>,
    pp_p61: Option<Dollars>,
    pp_p62: Option<Dollars>,
    pp_p63: Option<Dollars>,
    pp_p64: Option<Dollars>,
    pp_p65: Option<Dollars>,
    pp_p66: Option<Dollars>,
    pp_p67: Option<Dollars>,
    pp_p68: Option<Dollars>,
    pp_p69: Option<Dollars>,
    pp_p70: Option<Dollars>,
    pp_p71: Option<Dollars>,
    pp_p72: Option<Dollars>,
    pp_p73: Option<Dollars>,
    pp_p74: Option<Dollars>,
    pp_p75: Option<Dollars>,
    pp_p76: Option<Dollars>,
    pp_p77: Option<Dollars>,
    pp_p78: Option<Dollars>,
    pp_p79: Option<Dollars>,
    pp_p80: Option<Dollars>,
    pp_p81: Option<Dollars>,
    pp_p82: Option<Dollars>,
    pp_p83: Option<Dollars>,
    pp_p84: Option<Dollars>,
    pp_p85: Option<Dollars>,
    pp_p86: Option<Dollars>,
    pp_p87: Option<Dollars>,
    pp_p88: Option<Dollars>,
    pp_p89: Option<Dollars>,
    pp_p90: Option<Dollars>,
    pp_p91: Option<Dollars>,
    pp_p92: Option<Dollars>,
    pp_p93: Option<Dollars>,
    pp_p94: Option<Dollars>,
    pp_p95: Option<Dollars>,
    pp_p96: Option<Dollars>,
    pp_p97: Option<Dollars>,
    pp_p98: Option<Dollars>,
    pp_p99: Option<Dollars>,

    processed_amount: Sats,
}
