using System.Windows.Media; using Newtonsoft.Json; namespace Azaion.Common.DTO; public class DetectionClass { public int Id { get; set; } public string Name { get; set; } = null!; public string ShortName { get; set; } = null!; public Color Color { get; set; } [JsonIgnore] public string UIName { get { var mode = PhotoMode switch { PhotoMode.Night => "(ніч)", PhotoMode.Winter => "(зим)", PhotoMode.Regular => "", _ => "" }; return ShortName + mode; } } [JsonIgnore] public PhotoMode PhotoMode { get; set; } [JsonIgnore] //For UI public int ClassNumber => Id + 1; [JsonIgnore] public int YoloId => Id == -1 ? Id : (int)PhotoMode + Id; [JsonIgnore] public SolidColorBrush ColorBrush => new(Color); public static DetectionClass FromYoloId(int yoloId, List detectionClasses) { var cls = yoloId % 20; var photoMode = (PhotoMode)(yoloId - cls); var detClass = detectionClasses[cls]; detClass.PhotoMode = photoMode; return detClass; } } public enum PhotoMode { Regular = 0, Winter = 20, Night = 40 }