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 };
18 
19 enum class TransferSensitivityType{
20     Invalid,
21     High,
22     Medium,
23     Low,
24 };
25 
26 NLOHMANN_JSON_SERIALIZE_ENUM(PowerEquipmentType, {
27     {PowerEquipmentType::Invalid, "Invalid"},
28     {PowerEquipmentType::RackPDU, "RackPDU"},
29     {PowerEquipmentType::FloorPDU, "FloorPDU"},
30     {PowerEquipmentType::ManualTransferSwitch, "ManualTransferSwitch"},
31     {PowerEquipmentType::AutomaticTransferSwitch, "AutomaticTransferSwitch"},
32     {PowerEquipmentType::Switchgear, "Switchgear"},
33     {PowerEquipmentType::PowerShelf, "PowerShelf"},
34     {PowerEquipmentType::Bus, "Bus"},
35 });
36 
37 NLOHMANN_JSON_SERIALIZE_ENUM(TransferSensitivityType, {
38     {TransferSensitivityType::Invalid, "Invalid"},
39     {TransferSensitivityType::High, "High"},
40     {TransferSensitivityType::Medium, "Medium"},
41     {TransferSensitivityType::Low, "Low"},
42 });
43 
44 }
45 // clang-format on
46