namespace Brizco.Domain.Entities.Shifts;

[AdaptTwoWays("[name]SDto", IgnoreAttributes = new[] { typeof(AdaptIgnoreAttribute) }, MapType = MapType.Map | MapType.MapToTarget | MapType.Projection)]
[AdaptTwoWays("[name]LDto", IgnoreAttributes = new[] { typeof(AdaptIgnoreAttribute) }, MapType = MapType.Map | MapType.MapToTarget)]
[AdaptTo("[name]LDto", IgnoreAttributes = new[] { typeof(AdaptIgnoreAttribute) }, MapType = MapType.Projection)]
[GenerateMapper]
public partial class Shift : ApiEntity
{
    public Shift() {  }

    internal Shift(string title, string description, TimeSpan startAt, TimeSpan endAt,Guid complexId)
    {
        Title = title;
        Description = description;
        StartAt = startAt;
        EndAt = endAt;
        ComplexId = complexId;
    }

    public string Title { get; internal set; } = string.Empty;
    public TimeSpan StartAt { get; internal set; }
    public TimeSpan EndAt { get; internal set; }
    public string Description { get; internal set; } = string.Empty;

    public Guid ComplexId { get; internal set; }
    public Complex? Complex { get; internal set; }

    public List<ShiftDay> Days { get; internal set; } = new();
    public List<ShiftPlan> Plans { get; internal set; } = new();
    public List<ShiftRoutine> Routines { get; internal set; } = new();
}