namespace MealPlan.Api.Models;
/// Meal slot when logging consumption. Extends recipe categories with snack.
public enum ConsumptionMealCategory
{
Breakfast = 0,
SecondBreakfast = 1,
Lunch = 2,
Dinner = 3,
Snack = 4,
}
public enum DietReminderType
{
Water = 0,
Meal = 1,
Snack = 2,
Custom = 3,
}
/// Bitmask for reminder days: Sun=1, Mon=2, Tue=4, Wed=8, Thu=16, Fri=32, Sat=64.
public static class ReminderDaysMask
{
public const int All = 127;
public static bool IncludesDay(int mask, DayOfWeek day)
{
var bit = day switch
{
DayOfWeek.Sunday => 1,
DayOfWeek.Monday => 2,
DayOfWeek.Tuesday => 4,
DayOfWeek.Wednesday => 8,
DayOfWeek.Thursday => 16,
DayOfWeek.Friday => 32,
DayOfWeek.Saturday => 64,
_ => 0,
};
return (mask & bit) != 0;
}
}