namespace WorkTracker.Domain;

public sealed class MonthlyTimesheetModel
{
    public int Year { get; set; }

    public int Month { get; set; }

    public List<MonthlyTimesheetDayModel> Days { get; set; } = [];

    public List<MonthlyTimesheetRowModel> Rows { get; set; } = [];
}

public sealed class MonthlyTimesheetDayModel
{
    public DateOnly Date { get; set; }

    public bool IsWeekend { get; set; }

    public bool IsHoliday { get; set; }

    public bool IsClosure { get; set; }

    public List<string> WorkUnitSummaries { get; set; } = [];

    public List<string> EventSummaries { get; set; } = [];
}

public sealed class MonthlyTimesheetRowModel
{
    public string Key { get; set; } = string.Empty;

    public string Label { get; set; } = string.Empty;

    public MonthlyTimesheetValueFormat ValueFormat { get; set; }

    public List<decimal?> DailyValues { get; set; } = [];

    public decimal? Total { get; set; }
}

public enum MonthlyTimesheetValueFormat
{
    Hours = 0,
    Days = 1
}