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 LocationDigits { init; get; } public int LocationFactor { init; get; } public int MapLogicSigma { init; get; } public bool MappingSaveFaceEncoding { 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 SortingFacesToSkipAfterSortBeforeLoad { init; get; } public int SortingFacesToTakeAfterSortBeforeLoad { 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 locationDigits, int locationFactor, int mapLogicSigma, bool mappingSaveFaceEncoding, bool mappingSaveMapped, bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping, bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping, int personBirthdayFirstYear, string personBirthdayFormat, string personKeyFormat, int sortingDaysDeltaTolerance, int sortingFacesToSkipAfterSortBeforeLoad, int sortingFacesToTakeAfterSortBeforeLoad, int sortingMaximumPerFaceShouldBeHigh, int sortingMaximumPerKey, int sortingSigma) { FaceDistanceHiddenImageFactor = faceDistanceHiddenImageFactor; FaceDistancePermyriad = faceDistancePermyriad; FaceDistanceMinimumConfidence = faceDistanceMinimumConfidence; FaceDistanceTolerance = faceDistanceTolerance; LocationDigits = locationDigits; LocationFactor = locationFactor; MapLogicSigma = mapLogicSigma; MappingSaveFaceEncoding = mappingSaveFaceEncoding; MappingSaveMapped = mappingSaveMapped; MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping; MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping; PersonBirthdayFirstYear = personBirthdayFirstYear; PersonBirthdayFormat = personBirthdayFormat; PersonKeyFormat = personKeyFormat; SortingDaysDeltaTolerance = sortingDaysDeltaTolerance; SortingFacesToSkipAfterSortBeforeLoad = sortingFacesToSkipAfterSortBeforeLoad; SortingFacesToTakeAfterSortBeforeLoad = sortingFacesToTakeAfterSortBeforeLoad; SortingMaximumPerFaceShouldBeHigh = sortingMaximumPerFaceShouldBeHigh; SortingMaximumPerKey = sortingMaximumPerKey; SortingSigma = sortingSigma; } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } }