1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace schedule
5 {
6 // clang-format off
7 
8 enum class DayOfWeek{
9     Invalid,
10     Monday,
11     Tuesday,
12     Wednesday,
13     Thursday,
14     Friday,
15     Saturday,
16     Sunday,
17     Every,
18 };
19 
20 enum class MonthOfYear{
21     Invalid,
22     January,
23     February,
24     March,
25     April,
26     May,
27     June,
28     July,
29     August,
30     September,
31     October,
32     November,
33     December,
34     Every,
35 };
36 
37 NLOHMANN_JSON_SERIALIZE_ENUM(DayOfWeek, {
38     {DayOfWeek::Invalid, "Invalid"},
39     {DayOfWeek::Monday, "Monday"},
40     {DayOfWeek::Tuesday, "Tuesday"},
41     {DayOfWeek::Wednesday, "Wednesday"},
42     {DayOfWeek::Thursday, "Thursday"},
43     {DayOfWeek::Friday, "Friday"},
44     {DayOfWeek::Saturday, "Saturday"},
45     {DayOfWeek::Sunday, "Sunday"},
46     {DayOfWeek::Every, "Every"},
47 });
48 
49 NLOHMANN_JSON_SERIALIZE_ENUM(MonthOfYear, {
50     {MonthOfYear::Invalid, "Invalid"},
51     {MonthOfYear::January, "January"},
52     {MonthOfYear::February, "February"},
53     {MonthOfYear::March, "March"},
54     {MonthOfYear::April, "April"},
55     {MonthOfYear::May, "May"},
56     {MonthOfYear::June, "June"},
57     {MonthOfYear::July, "July"},
58     {MonthOfYear::August, "August"},
59     {MonthOfYear::September, "September"},
60     {MonthOfYear::October, "October"},
61     {MonthOfYear::November, "November"},
62     {MonthOfYear::December, "December"},
63     {MonthOfYear::Every, "Every"},
64 });
65 
66 }
67 // clang-format on
68