use crate::FoxWorkModes;
#[derive(Debug)]
pub struct WorkMode {
pub enum_list: Vec<FoxWorkModes>,
pub unit: String,
pub precision: f64,
}
#[derive(Debug)]
pub struct Range {
pub min: f64,
pub max: f64,
}
#[derive(Debug)]
pub struct MetaData {
pub unit: String,
pub precision: f64,
pub range: Range,
}
#[derive(Debug)]
pub struct Properties {
pub start_minute: MetaData,
pub fd_pwr: MetaData,
pub end_hour: MetaData,
pub end_minute: MetaData,
pub fd_soc: MetaData,
pub start_hour: MetaData,
pub work_mode: WorkMode,
pub min_soc_on_grid: MetaData,
pub max_soc: MetaData,
}
#[derive(Debug)]
pub struct ExtraParam {
pub fd_pwr: Option<f64>,
pub min_soc_on_grid: Option<f64>,
pub fd_soc: Option<f64>,
pub max_soc: Option<f64>,
pub import_limit: Option<f64>,
pub export_limit: Option<f64>,
pub pv_limit: Option<f64>,
pub reactive_power: Option<f64>,
}
#[derive(Debug)]
pub struct Group {
pub start_hour: i64,
pub start_minute: i64,
pub end_hour: i64,
pub end_minute: i64,
pub work_mode: FoxWorkModes,
pub extra_param: Option<ExtraParam>,
}
#[derive(Debug)]
pub struct TimeSegmentsData {
pub enable: i64,
pub max_group_count: i64,
pub groups: Vec<Group>,
pub properties: Properties,
}
pub struct TimeSegmentsDataRequest {
pub is_default: Option<bool>,
pub groups: Vec<Group>,
}