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 DateTime DateTimeOriginalThenMinimumDateTime { init; get; } public object? Encoding { init; get; } public MappingFromFilterPost? MappingFromFilterPost { init; get; } public int? Id { init; get; } public bool? IsWrongYear { init; get; } public double? Length { init; get; } public int? WholePercentages { init; get; } [JsonConstructor] public FaceDistance(int? confidencePercent, DateTime dateTimeOriginalThenMinimumDateTime, object? encoding, MappingFromFilterPost? mappingFromFilterPost, int? id, bool? isWrongYear, double? length, int? wholePercentages) { ConfidencePercent = confidencePercent; DateTimeOriginalThenMinimumDateTime = dateTimeOriginalThenMinimumDateTime; Encoding = encoding; MappingFromFilterPost = mappingFromFilterPost; Id = id; IsWrongYear = isWrongYear; Length = length; WholePercentages = wholePercentages; } public FaceDistance(int? confidencePercent, DateTime dateTimeOriginalThenMinimumDateTime, object? encoding, MappingFromFilterPost? mappingFromFilterPost, int id, bool? isWrongYear, int? wholePercentages) : this(confidencePercent, dateTimeOriginalThenMinimumDateTime, encoding, mappingFromFilterPost, id, isWrongYear, null, wholePercentages) { } public FaceDistance(FaceDistance faceDistance, double length) : this(faceDistance.ConfidencePercent, faceDistance.DateTimeOriginalThenMinimumDateTime, null, faceDistance.MappingFromFilterPost, faceDistance.Id, faceDistance.IsWrongYear, length, faceDistance.WholePercentages) { } public FaceDistance(object encoding) => Encoding = encoding; public override string ToString() { string result = JsonSerializer.Serialize(this, FaceDistanceSourceGenerationContext.Default.FaceDistance); return result; } } [JsonSourceGenerationOptions(WriteIndented = true)] [JsonSerializable(typeof(FaceDistance))] internal partial class FaceDistanceSourceGenerationContext : JsonSerializerContext { }