using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Map.Models; public class Configuration { public int FaceDistanceHiddenImageFactor { init; get; } public int FaceDistancePermyriad { init; get; } public double FaceDistanceMinimumConfidence { init; get; } public double FaceDistanceTolerance { init; get; } public int MapLogicSigma { init; get; } public string MappingDefaultName { init; get; } public bool DistanceMoveUnableToMatch { init; get; } public bool MappingSaveNotMapped { init; get; } public bool MappingSaveMapped { init; get; } public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; } public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; } public int PersonBirthdayFirstYear { init; get; } public string PersonBirthdayFormat { init; get; } public string PersonKeyFormat { init; get; } public int SortingDaysDeltaTolerance { init; get; } public int SortingMaximumPerFaceShouldBeHigh { init; get; } public int SortingMaximumPerKey { init; get; } public int SortingSigma { init; get; } [JsonConstructor] public Configuration(int faceDistanceHiddenImageFactor, int faceDistancePermyriad, double faceDistanceMinimumConfidence, double faceDistanceTolerance, int mapLogicSigma, string mappingDefaultName, bool distanceMoveUnableToMatch, bool mappingSaveNotMapped, bool mappingSaveMapped, bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping, bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping, int personBirthdayFirstYear, string personBirthdayFormat, string personKeyFormat, int sortingDaysDeltaTolerance, int sortingMaximumPerFaceShouldBeHigh, int sortingMaximumPerKey, int sortingSigma) { FaceDistanceHiddenImageFactor = faceDistanceHiddenImageFactor; FaceDistancePermyriad = faceDistancePermyriad; FaceDistanceMinimumConfidence = faceDistanceMinimumConfidence; FaceDistanceTolerance = faceDistanceTolerance; MapLogicSigma = mapLogicSigma; MappingDefaultName = mappingDefaultName; DistanceMoveUnableToMatch = distanceMoveUnableToMatch; MappingSaveNotMapped = mappingSaveNotMapped; MappingSaveMapped = mappingSaveMapped; MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping; MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping; PersonBirthdayFirstYear = personBirthdayFirstYear; PersonBirthdayFormat = personBirthdayFormat; PersonKeyFormat = personKeyFormat; SortingDaysDeltaTolerance = sortingDaysDeltaTolerance; SortingMaximumPerFaceShouldBeHigh = sortingMaximumPerFaceShouldBeHigh; SortingMaximumPerKey = sortingMaximumPerKey; SortingSigma = sortingSigma; } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } }