namespace WorkTracker.Domain;

public sealed class WorkDayDocument
{
    public string Id { get; set; } = string.Empty;

    public DateOnly Date { get; set; }

    public TimeOnly? StartTime { get; set; }

    public TimeOnly? ProjectedExitTime { get; set; }

    public TimeOnly? ActualExitTime { get; set; }

    public DayType DayType { get; set; } = DayType.None;

    public decimal ExtraHoursDelta { get; set; }

    public decimal WorkedHoursBase { get; set; }

    public decimal WorkedHoursFinal { get; set; }

    public decimal HoursOff { get; set; }

    public decimal GrossIncome { get; set; }

    public decimal NetIncome { get; set; }

    public bool IsWeekend { get; set; }

    public bool IsItalianFestivity { get; set; }

    public string? Notes { get; set; }

    public CoeffSnapshotDocument CoeffSnapshot { get; set; } = new();

    public DateTimeOffset CreatedAtUtc { get; set; } = DateTimeOffset.UtcNow;

    public DateTimeOffset UpdatedAtUtc { get; set; } = DateTimeOffset.UtcNow;
}
