using System.Text.Json.Serialization;

namespace View_by_Distance.Shared.Models;

public record class SortingContainer : Properties.ISortingContainer
{

    public Mapping? Question { init; get; }
    public Sorting Sorting { init; get; }
    public Mapping Source { init; get; }

    [JsonConstructor]
    public SortingContainer(Mapping? question, Sorting sorting, Mapping source)
    {
        Question = question;
        Sorting = sorting;
        Source = source;
    }

    public SortingContainer(Sorting sorting, Mapping source) :
        this(null, sorting, source)
    { }

    public override string ToString()
    {
        string result = string.Concat(Source.MappingFromItem.Id, '\t', Source.MappingFromLocation?.WholePercentages, '\t', Sorting.Id, '\t', Sorting.WholePercentages, '\t', Sorting.Older, '\t', '\t', Sorting.DistancePermyriad, '\t', Sorting.DaysDelta);
        return result;
    }

}