using System.Text.Json; using System.Text.Json.Serialization; using View_by_Distance.FaceRecognitionDotNet; using View_by_Distance.Property.Models; using View_by_Distance.Shared.Models.Properties; namespace View_by_Distance.Instance.Models; internal class DistanceHolder { public IFace Face { init; get; } public FaceEncoding? FaceEncoding { init; get; } public FileHolder FileHolder { init; get; } public int Id { init; get; } public string JSONDirectory { init; get; } public ILocation Location { init; get; } public string TSVDirectory { init; get; } public double Sort { get; set; } [JsonConstructor] public DistanceHolder( IFace face, FaceEncoding? faceEncoding, FileHolder fileHolder, int id, string jsonDirectory, ILocation location, string tsvDirectory ) { FileHolder = fileHolder; Sort = double.MaxValue; Face = face; FaceEncoding = faceEncoding; Id = id; JSONDirectory = jsonDirectory; Location = location; TSVDirectory = tsvDirectory; } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } }