From 87ac9b8a4dea0bc303feed786321249f8f052c67 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 19 May 2026 00:52:23 -0400 Subject: [PATCH] feat(notification-outbox): add Type field to NotificationList --- .../Entities/Notifications/NotificationList.cs | 3 +++ .../Configurations/NotificationConfiguration.cs | 5 +++++ .../RepositoryCoverageTests.cs | 12 ++++++++++++ 3 files changed, 20 insertions(+) diff --git a/src/ScadaLink.Commons/Entities/Notifications/NotificationList.cs b/src/ScadaLink.Commons/Entities/Notifications/NotificationList.cs index 1c78946..b02db24 100644 --- a/src/ScadaLink.Commons/Entities/Notifications/NotificationList.cs +++ b/src/ScadaLink.Commons/Entities/Notifications/NotificationList.cs @@ -1,9 +1,12 @@ +using ScadaLink.Commons.Types.Enums; + namespace ScadaLink.Commons.Entities.Notifications; public class NotificationList { public int Id { get; set; } public string Name { get; set; } + public NotificationType Type { get; set; } = NotificationType.Email; public ICollection Recipients { get; set; } = new List(); public NotificationList(string name) diff --git a/src/ScadaLink.ConfigurationDatabase/Configurations/NotificationConfiguration.cs b/src/ScadaLink.ConfigurationDatabase/Configurations/NotificationConfiguration.cs index f87e82e..cd85e4e 100644 --- a/src/ScadaLink.ConfigurationDatabase/Configurations/NotificationConfiguration.cs +++ b/src/ScadaLink.ConfigurationDatabase/Configurations/NotificationConfiguration.cs @@ -14,6 +14,11 @@ public class NotificationListConfiguration : IEntityTypeConfiguration n.Type) + .HasConversion() + .HasMaxLength(32) + .IsRequired(); + builder.HasMany(n => n.Recipients) .WithOne() .HasForeignKey(r => r.NotificationListId) diff --git a/tests/ScadaLink.ConfigurationDatabase.Tests/RepositoryCoverageTests.cs b/tests/ScadaLink.ConfigurationDatabase.Tests/RepositoryCoverageTests.cs index 3e954ce..0951f0c 100644 --- a/tests/ScadaLink.ConfigurationDatabase.Tests/RepositoryCoverageTests.cs +++ b/tests/ScadaLink.ConfigurationDatabase.Tests/RepositoryCoverageTests.cs @@ -5,6 +5,7 @@ using ScadaLink.Commons.Entities.Instances; using ScadaLink.Commons.Entities.Notifications; using ScadaLink.Commons.Entities.Sites; using ScadaLink.Commons.Entities.Templates; +using ScadaLink.Commons.Types.Enums; using ScadaLink.ConfigurationDatabase; using ScadaLink.ConfigurationDatabase.Repositories; using ScadaLink.ConfigurationDatabase.Services; @@ -224,6 +225,17 @@ public class NotificationRepositoryTests : IDisposable Assert.Null(await _repository.GetNotificationListByIdAsync(list.Id)); } + [Fact] + public async Task NotificationList_PersistsType() + { + var list = new NotificationList("ops") { Type = NotificationType.Email }; + await _repository.AddNotificationListAsync(list); + await _repository.SaveChangesAsync(); + _context.ChangeTracker.Clear(); + var loaded = await _repository.GetListByNameAsync("ops"); + Assert.Equal(NotificationType.Email, loaded!.Type); + } + [Fact] public void Constructor_NullContext_Throws() {