ocpi 0.3.5

Unofficial, in progress, OCPI implementation
Documentation
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>,
}