use serde::{Deserialize, Serialize};
use serde_repr::Deserialize_repr;
#[derive(Copy, Clone, Debug, Serialize)]
pub enum SortOrder {
#[serde(rename = "ASC")]
Ascending,
#[serde(rename = "DESC")]
Descending,
}
#[derive(Copy, Clone, Debug, Serialize)]
pub enum SiteSortBy {
Name,
Country,
State,
City,
Address,
Zip,
Status,
PeakPower,
InstallationDate,
Amount,
MaxSeverity,
CreationTime,
}
#[derive(Copy, Clone, Debug, Serialize)]
pub enum FilterSiteStatus {
Active,
Pending,
Disabled,
All,
}
#[derive(Copy, Clone, Debug, Deserialize)]
pub enum SiteStatus {
Active,
PendingCommunication,
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize)]
pub enum TimeUnit {
#[serde(rename = "QUARTER_OF_AN_HOUR")]
QuarterOfAnHour,
#[serde(rename = "HOUR")]
Hour,
#[serde(rename = "DAY")]
Day,
#[serde(rename = "WEEK")]
Week,
#[serde(rename = "MONTH")]
Month,
#[serde(rename = "YEAR")]
Year,
}
#[derive(Copy, Clone, Debug, Deserialize, Serialize)]
pub enum MeterType {
Production,
Consumption,
SelfConsumption,
FeedIn,
Purchased,
}
#[derive(Copy, Clone, Debug, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum MeterForm {
Physical,
Virtual,
}
#[derive(Copy, Clone, Debug, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum InverterMode {
Off,
Sleeping,
Starting,
Mppt,
Throttled,
ShuttingDown,
Fault,
Standby,
LockedStdby,
LockedFireFighters,
LockedForceShutdown,
LockedCommTimeout,
LockedInvTrip,
LockedInvArcDetected,
LockedDg,
LockedPhaseBalancer,
LockedPreCommissioning,
LockedInternal,
}
#[derive(Copy, Clone, Debug, Deserialize_repr)]
#[repr(u8)]
pub enum OperationMode {
OnGrid = 0,
OffGridWithPvOrBattery = 1,
OffGridWithGenerator = 2,
}
#[derive(Copy, Clone, Debug, Serialize)]
pub enum SystemUnits {
Metrics,
Imperial,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub enum EnergyUnit {
Wh,
#[serde(untagged)]
Other(String),
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub enum PowerUnit {
W,
#[serde(rename = "kW")]
Kw,
#[serde(untagged)]
Other(String),
}
#[derive(Clone, Debug, Deserialize)]
pub enum Measurer {
#[serde(rename = "INVERTER")]
Inverter,
#[serde(untagged)]
Other(String),
}
#[derive(Copy, Clone, Debug, Deserialize)]
pub enum PowerFlowElement {
#[serde(rename = "GRID")]
Grid,
Load,
#[serde(rename = "PV")]
Pv,
Storage,
}
#[derive(Copy, Clone, Debug, Deserialize)]
pub enum PowerFlowElementStatus {
Active,
Idle,
Inactive,
Disabled,
}
#[derive(Copy, Clone, Debug, Deserialize_repr)]
#[repr(u8)]
pub enum BatteryState {
Invalid = 0,
Standby = 1,
ThermalManagement = 2,
Enabled = 3,
Fault = 4,
}
#[derive(Copy, Clone, Debug, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum GasEmissionUnit {
Kg,
Lb,
}
#[derive(Clone, Debug, Deserialize)]
pub enum EquipmentCommunicationMethod {
#[serde(rename = "ETHERNET")]
Ethernet,
#[serde(untagged)]
Other(String),
}
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum SensorType {
Irradiance,
Temperature,
#[serde(untagged)]
Other(String),
}
#[derive(Clone, Debug, Deserialize)]
pub enum SensorMeasurement {
SensorGlobalHorizontalIrradiance,
SensorDiffusedIrradiance,
SensorAmbientTemperature,
#[serde(untagged)]
Other(String),
}
#[derive(Copy, Clone, Debug, Serialize)]
pub enum AccountSortBy {
Name,
Country,
City,
Address,
Zip,
Fax,
Phone,
Notes,
}