1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace power_distribution
5 {
6 // clang-format off
7 
8 enum class PowerEquipmentType{
9     Invalid,
10     RackPDU,
11     FloorPDU,
12     ManualTransferSwitch,
13     AutomaticTransferSwitch,
14     Switchgear,
15     PowerShelf,
16     Bus,
17     BatteryShelf,
18 };
19 
20 enum class TransferSensitivityType{
21     Invalid,
22     High,
23     Medium,
24     Low,
25 };
26 
27 NLOHMANN_JSON_SERIALIZE_ENUM(PowerEquipmentType, {
28     {PowerEquipmentType::Invalid, "Invalid"},
29     {PowerEquipmentType::RackPDU, "RackPDU"},
30     {PowerEquipmentType::FloorPDU, "FloorPDU"},
31     {PowerEquipmentType::ManualTransferSwitch, "ManualTransferSwitch"},
32     {PowerEquipmentType::AutomaticTransferSwitch, "AutomaticTransferSwitch"},
33     {PowerEquipmentType::Switchgear, "Switchgear"},
34     {PowerEquipmentType::PowerShelf, "PowerShelf"},
35     {PowerEquipmentType::Bus, "Bus"},
36     {PowerEquipmentType::BatteryShelf, "BatteryShelf"},
37 });
38 
39 NLOHMANN_JSON_SERIALIZE_ENUM(TransferSensitivityType, {
40     {TransferSensitivityType::Invalid, "Invalid"},
41     {TransferSensitivityType::High, "High"},
42     {TransferSensitivityType::Medium, "Medium"},
43     {TransferSensitivityType::Low, "Low"},
44 });
45 
46 }
47 // clang-format on
48