use super::{DateTime, ProfileType};
#[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub struct ChargingPreferences {
/// Type of Smart Charging Profile selected by the driver. The ProfileType has to be
/// supported at the Connector and for every supported ProfileType, a Tariff MUST
/// be provided.
/// This gives the EV driver the option between different pricing options.
pub profile_type: ProfileType,
/// Expected departure.
/// The driver has given this Date/Time as expected departure moment.
/// It is only an estimation and not necessarily the Date/Time of the actual
/// departure.
pub departure_time: Option<DateTime>,
/// Requested amount of energy in kWh.
/// The EV driver wants to have this amount of energy charged.
pub energy_need: Option<f64>,
/// The driver allows their EV to be discharged when needed, as long as the other
/// preferences are met:
/// EV is charged with the preferred energy (energy_need) until the preferred
/// departure moment (departure_time).
/// Default if omitted: `false`
pub discharge_allowed: Option<bool>,
}