refactor: simplify data connections from many-to-many site assignment to direct site ownership

Replace SiteDataConnectionAssignment join table with a direct SiteId FK on DataConnection,
simplifying the data model, repositories, UI, CLI, and deployment service.
This commit is contained in:
Joseph Doherty
2026-03-21 21:07:10 -04:00
parent cd6efeea90
commit 970d0a5cb3
25 changed files with 1543 additions and 490 deletions

View File

@@ -45,7 +45,6 @@ public class DbContextTests : IDisposable
Assert.NotNull(_context.Areas);
Assert.NotNull(_context.Sites);
Assert.NotNull(_context.DataConnections);
Assert.NotNull(_context.SiteDataConnectionAssignments);
Assert.NotNull(_context.DeploymentRecords);
Assert.NotNull(_context.SystemArtifactDeploymentRecords);
Assert.NotNull(_context.ExternalSystemDefinitions);
@@ -133,9 +132,11 @@ public class DbContextTests : IDisposable
{
var site = new Site("Site1", "SITE-001");
var template = new Template("Template1");
var dataConn = new DataConnection("OpcConn", "OpcUa");
_context.Sites.Add(site);
_context.Templates.Add(template);
_context.SaveChanges();
var dataConn = new DataConnection("OpcConn", "OpcUa", site.Id);
_context.DataConnections.Add(dataConn);
_context.SaveChanges();
@@ -300,19 +301,18 @@ public class DbContextTests : IDisposable
}
[Fact]
public void SiteDataConnectionAssignment_CreatesBothForeignKeys()
public void DataConnection_BelongsToSite()
{
var site = new Site("Site1", "SITE-001");
var conn = new DataConnection("OpcConn", "OpcUa");
_context.Sites.Add(site);
_context.SaveChanges();
var conn = new DataConnection("OpcConn", "OpcUa", site.Id);
_context.DataConnections.Add(conn);
_context.SaveChanges();
var assignment = new SiteDataConnectionAssignment { SiteId = site.Id, DataConnectionId = conn.Id };
_context.SiteDataConnectionAssignments.Add(assignment);
_context.SaveChanges();
Assert.Single(_context.SiteDataConnectionAssignments.ToList());
var loaded = _context.DataConnections.Single(c => c.Name == "OpcConn");
Assert.Equal(site.Id, loaded.SiteId);
}
[Fact]