use serde::{Deserialize, Serialize};
use super::environmental_reading::EnvironmentalReading;
use super::state_of_charge_reading::StateOfChargeReading;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct UsageHistory {
#[serde(skip_serializing_if = "Option::is_none")]
pub charge_discharge_cycles: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub negative_events: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_conditions: Option<Vec<EnvironmentalReading>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state_of_charge: Option<Vec<StateOfChargeReading>>,
}