use crate::models::investment_result::InvestmentResult;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct AccountBucketResultResponse {
#[serde(rename = "cash")]
pub cash: f32,
#[serde(rename = "dividendDetails")]
pub dividend_details: crate::models::dividend_details::DividendDetails,
#[serde(rename = "id")]
pub id: i64,
#[serde(rename = "progress", skip_serializing_if = "Option::is_none")]
pub progress: Option<f32>,
#[serde(rename = "result")]
pub result: InvestmentResult,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<Status>,
}
impl AccountBucketResultResponse {
#[must_use]
pub const fn new() -> Self {
Self {
cash: 0.0,
dividend_details: crate::models::dividend_details::DividendDetails::new(),
id: 0,
progress: None,
result: InvestmentResult::new(),
status: None,
}
}
}
impl Default for AccountBucketResultResponse {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "AHEAD")]
Ahead,
#[serde(rename = "ON_TRACK")]
OnTrack,
#[serde(rename = "BEHIND")]
Behind,
}
impl Default for Status {
fn default() -> Self {
Self::Ahead
}
}