using Newtonsoft.Json; namespace Azaion.Common.DTO.Config; public class AnnotationConfig { public List DetectionClasses { get; set; } = null!; [JsonIgnore] private Dictionary? _detectionClassesDict; [JsonIgnore] public Dictionary DetectionClassesDict { get { if (_detectionClassesDict != null) return _detectionClassesDict; var photoModes = Enum.GetValues(typeof(PhotoMode)).Cast().ToList(); _detectionClassesDict = DetectionClasses.SelectMany(cls => photoModes.Select(mode => new DetectionClass { Id = cls.Id, Name = cls.Name, Color = cls.Color, ShortName = cls.ShortName, PhotoMode = mode })) .ToDictionary(x => x.YoloId, x => x); return _detectionClassesDict; } } public List VideoFormats { get; set; } = null!; public List ImageFormats { get; set; } = null!; public string AnnotationsDbFile { get; set; } = null!; }