feat(templates): add TemplateFolder entity and Template.FolderId

This commit is contained in:
Joseph Doherty
2026-05-11 10:31:42 -04:00
parent 80f407ae0d
commit 1d27ec3b85
3 changed files with 45 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ public class Template
public string Name { get; set; } public string Name { get; set; }
public string? Description { get; set; } public string? Description { get; set; }
public int? ParentTemplateId { get; set; } public int? ParentTemplateId { get; set; }
public int? FolderId { get; set; }
public ICollection<TemplateAttribute> Attributes { get; set; } = new List<TemplateAttribute>(); public ICollection<TemplateAttribute> Attributes { get; set; } = new List<TemplateAttribute>();
public ICollection<TemplateAlarm> Alarms { get; set; } = new List<TemplateAlarm>(); public ICollection<TemplateAlarm> Alarms { get; set; } = new List<TemplateAlarm>();
public ICollection<TemplateScript> Scripts { get; set; } = new List<TemplateScript>(); public ICollection<TemplateScript> Scripts { get; set; } = new List<TemplateScript>();

View File

@@ -0,0 +1,14 @@
namespace ScadaLink.Commons.Entities.Templates;
public class TemplateFolder
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentFolderId { get; set; }
public int SortOrder { get; set; }
public TemplateFolder(string name)
{
Name = name ?? throw new ArgumentNullException(nameof(name));
}
}

View File

@@ -0,0 +1,30 @@
using ScadaLink.Commons.Entities.Templates;
using Xunit;
namespace ScadaLink.Commons.Tests.Entities;
public class TemplateFolderTests
{
[Fact]
public void Constructor_SetsName()
{
var folder = new TemplateFolder("Dev");
Assert.Equal("Dev", folder.Name);
Assert.Null(folder.ParentFolderId);
Assert.Equal(0, folder.SortOrder);
}
[Fact]
public void Constructor_NullName_Throws()
{
Assert.Throws<ArgumentNullException>(() => new TemplateFolder(null!));
}
[Fact]
public void Template_FolderId_DefaultsToNull()
{
var template = new Template("X");
Assert.Null(template.FolderId);
}
}