use chrono::NaiveDateTime;
use serde::{Deserialize, Serialize};
use crate::tapo_vendor::responses::TapoResponseExt;
use crate::tapo_vendor::utils::der_tapo_datetime_format;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(any(), pyo3::prelude::pyclass(from_py_object, get_all))]
pub struct EnergyUsageResult {
pub current_power: Option<u64>,
pub electricity_charge: Option<[u64; 3]>,
#[serde(deserialize_with = "der_tapo_datetime_format")]
pub local_time: NaiveDateTime,
pub month_energy: u64,
pub month_runtime: u64,
pub today_energy: u64,
pub today_runtime: u64,
}
impl TapoResponseExt for EnergyUsageResult {}
#[cfg(any())]
crate::tapo_vendor::impl_to_dict!(EnergyUsageResult);