using System; using Data.Models.Client; namespace SharedLibraryCore.Alerts; public class Alert { public enum AlertCategory { Information, Warning, Error, Message, } public class AlertState { public Guid AlertId { get; } = Guid.NewGuid(); public AlertCategory Category { get; set; } public DateTime OccuredAt { get; set; } = DateTime.UtcNow; public DateTime? ExpiresAt { get; set; } public string Message { get; set; } public string Source { get; set; } public int? RecipientId { get; set; } public int? SourceId { get; set; } public int? ReferenceId { get; set; } public bool? Delivered { get; set; } public bool? Consumed { get; set; } public EFClient.Permission? MinimumPermission { get; set; } public string Type { get; set; } public static AlertState Build() => new(); } }