#ifndef TARIFF_BUSINESS_HOURS_H_INCLUDED #define TARIFF_BUSINESS_HOURS_H_INCLUDED /// /// Business hours (byte represents payment option id) /// /// #define _MON_ (1ULL << 8) #define _TUE_ (1ULL << 9) #define _WED_ (1ULL << 10) #define _THU_ (1ULL << 11) #define _FRI_ (1ULL << 12) #define _SAT_ (1ULL << 13) #define _SUN_ (1ULL << 14) #define _WEEK_DAYS_ ((_MON_|_TUE_|_WED_|_THU_|_FRI_)) #define _WORKING_DAYS_ ((_MON_|_TUE_|_WED_|_THU_|_FRI_|_SAT_)) #define _ALL_DAYS_ ((_MON_|_TUE_|_WED_|_THU_|_FRI_|_SAT_|_SUN_)) #define _OFFICIAL_HOLIDAY_ (1ULL << 15) #define _ONLY_WEEKEND ((_SAT_|_SUN_)) #define _ONLY_OPEN_FOR_BUSINESS_DAYS (1ULL << 16) /* verkaufsoffen */ #define _NOT_DEFINED (~0ULL) enum BusinessHours : std::uint64_t { NoRestriction_24_7 = 0, OnlyWorkingDays = 1, // [Monday-Friday] OnlyWeekDays = 2, // [Monday-Saturday] OnlyWeekEnd = 4, // [Saturday+Sunday] OnlyOfficialHolidays = 8, OnlySundaysAndHolidays = 12, // [Sun+Holiday] OnlySpecialDays = 16, OnlySchoolHolidays = 32, SpecialAndSchoolHolidays = 48, OnlyOpenForBusinessDays = 64, // verkaufsoffen AllDaysWithRestrictedHours = 128, // every day, restricted to some time range NoBusinessHoursDefined = 255, // new 12.04.2024 NO_RESTRICTION_24_7 = 0, MON = _MON_, TUE = _TUE_, WED = _WED_, THU = _THU_, FRI = _FRI_, SAT = _SAT_, SUN = _SUN_, WEEK_DAYS = _WEEK_DAYS_, WORKING_DAYS = _WORKING_DAYS_, ALL_DAYS = _ALL_DAYS_, OFFICIAL_HOLIDAY = _OFFICIAL_HOLIDAY_, ONLY_WEEKEND = _ONLY_WEEKEND, ONLY_OPEN_FOR_BUSINESS_DAYS = _ONLY_OPEN_FOR_BUSINESS_DAYS, NOT_DEFINED = _NOT_DEFINED }; struct BusinessHours_struct { BusinessHours bh; }; #endif // TARIFF_BUSINESS_HOURS_H_INCLUDED