using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Shared.Models; public record class FaceDistance : Properties.IFaceDistance { public int? ConfidencePercent { init; get; } public object? Encoding { init; get; } public int Id { init; get; } public bool? IsWrongYear { init; get; } public double? Length { init; get; } public DateTime? MinimumDateTime { init; get; } public int? NormalizedPixelPercentage { init; get; } [JsonConstructor] public FaceDistance(int? confidencePercent, object? encoding, int id, bool? isWrongYear, double? length, DateTime? minimumDateTime, int? normalizedPixelPercentage) { ConfidencePercent = confidencePercent; Encoding = encoding; Id = id; IsWrongYear = isWrongYear; Length = length; MinimumDateTime = minimumDateTime; NormalizedPixelPercentage = normalizedPixelPercentage; } public FaceDistance(int? confidencePercent, object? encoding, int id, bool? isWrongYear, DateTime? minimumDateTime, int? normalizedPixelPercentage) : this(confidencePercent, encoding, id, isWrongYear, null, minimumDateTime, normalizedPixelPercentage) { } public FaceDistance(FaceDistance faceDistance, double length) : this(faceDistance.ConfidencePercent, null, faceDistance.Id, faceDistance.IsWrongYear, length, faceDistance.MinimumDateTime, faceDistance.NormalizedPixelPercentage) { } public FaceDistance(object encoding) => Encoding = encoding; public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } }