using System.IO; using System.Windows.Media.Imaging; using Azaion.Common.DTO.Config; using Azaion.Common.DTO.Queue; using Azaion.Common.Extensions; using Azaion.CommonSecurity.DTO; namespace Azaion.Common.DTO; public class Annotation { private static string _labelsDir = null!; private static string _imagesDir = null!; private static string _thumbDir = null!; public static void InitializeDirs(DirectoriesConfig config) { _labelsDir = config.LabelsDirectory; _imagesDir = config.ImagesDirectory; _thumbDir = config.ThumbnailsDirectory; } public string Name { get; set; } = null!; public string ImageExtension { get; set; } = null!; public DateTime CreatedDate { get; set; } public string CreatedEmail { get; set; } = null!; public RoleEnum CreatedRole { get; set; } public SourceEnum Source { get; set; } public AnnotationStatus AnnotationStatus { get; set; } public IEnumerable Detections { get; set; } = null!; public double Lat { get; set; } public double Lon { get; set; } public List Classes => Detections.Select(x => x.ClassNumber).ToList(); public string ImagePath => Path.Combine(_imagesDir, $"{Name}{ImageExtension}"); public string LabelPath => Path.Combine(_labelsDir, $"{Name}.txt"); public string ThumbPath => Path.Combine(_thumbDir, $"{Name}{Constants.THUMBNAIL_PREFIX}.jpg"); } public enum AnnotationStatus { None = 0, Created = 10, Validated = 20 } public class AnnotationName { public string Name { get; set; } = null!; }