using System.Text.Json;
using System.Text.Json.Serialization;

namespace View_by_Distance.Shared.Models;

public record class Sorting : Properties.ISorting
{

    public int DaysDelta { init; get; }
    public int DistancePermyriad { init; get; }
    public int Id { init; get; }
    public int NormalizedRectangle { init; get; }
    public bool Older { init; get; }

    [JsonConstructor]
    public Sorting(int daysDelta, int distancePermyriad, int id, int normalizedRectangle, bool older)
    {
        DaysDelta = daysDelta;
        DistancePermyriad = distancePermyriad;
        Id = id;
        NormalizedRectangle = normalizedRectangle;
        Older = older;
    }

    public Sorting(Mapping mapping, MappingFromLocation mappingFromLocation) :
        this(0, 0, mapping.MappingFromItem.Id, mappingFromLocation.NormalizedRectangle, false)
    { }

    public override string ToString()
    {
        string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
        return result;
    }

}