using MediatR; using MessagePack; namespace Azaion.Common.DTO; public enum AIAvailabilityEnum { None = 0, Downloading = 10, Converting = 20, Uploading = 30, Enabled = 200, Warning = 300, Error = 500 } [MessagePackObject] public class AIAvailabilityStatusEvent : INotification { [Key("s")] public AIAvailabilityEnum Status { get; set; } [Key("m")] public string? ErrorMessage { get; set; } public override string ToString() => $"{StatusMessageDict.GetValueOrDefault(Status, "Помилка")} {ErrorMessage}"; private static readonly Dictionary StatusMessageDict = new() { { AIAvailabilityEnum.Downloading, "Йде завантаження AI для Вашої відеокарти" }, { AIAvailabilityEnum.Converting, "Йде налаштування AI під Ваше залізо. (5-12 хвилин в залежності від моделі відеокарти, до 50 хв на старих GTX1650)" }, { AIAvailabilityEnum.Uploading, "Йде зберігання AI" }, { AIAvailabilityEnum.Enabled, "AI готовий для розпізнавання" }, { AIAvailabilityEnum.Warning, "Неможливо запустити AI наразі, йде налаштування під Ваше залізо" }, { AIAvailabilityEnum.Error, "Помилка під час налаштування AI" } }; }