fix(backend): add missing domain foreign keys
Some checks failed
deploy-socialize / image (push) Failing after 44s
deploy-socialize / deploy (push) Has been skipped

This commit is contained in:
2026-05-07 15:48:12 -04:00
parent e9fb1c5ee0
commit 49e2ca1774
14 changed files with 3109 additions and 26 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,405 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Socialize.Api.Migrations
{
/// <inheritdoc />
internal partial class AddMissingDomainForeignKeys : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateIndex(
name: "IX_FeedbackReports_CampaignId",
table: "FeedbackReports",
column: "CampaignId");
migrationBuilder.CreateIndex(
name: "IX_FeedbackReports_ClientId",
table: "FeedbackReports",
column: "ClientId");
migrationBuilder.CreateIndex(
name: "IX_FeedbackReports_ContentItemId",
table: "FeedbackReports",
column: "ContentItemId");
migrationBuilder.AddForeignKey(
name: "FK_ApprovalDecisions_ApprovalRequests_ApprovalRequestId",
table: "ApprovalDecisions",
column: "ApprovalRequestId",
principalTable: "ApprovalRequests",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ApprovalRequests_ApprovalWorkflowInstances_WorkflowInstance~",
table: "ApprovalRequests",
column: "WorkflowInstanceId",
principalTable: "ApprovalWorkflowInstances",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ApprovalRequests_ContentItems_ContentItemId",
table: "ApprovalRequests",
column: "ContentItemId",
principalTable: "ContentItems",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ApprovalRequests_Workspaces_WorkspaceId",
table: "ApprovalRequests",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ApprovalWorkflowInstances_ContentItems_ContentItemId",
table: "ApprovalWorkflowInstances",
column: "ContentItemId",
principalTable: "ContentItems",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ApprovalWorkflowInstances_Workspaces_WorkspaceId",
table: "ApprovalWorkflowInstances",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_AssetRevisions_Assets_AssetId",
table: "AssetRevisions",
column: "AssetId",
principalTable: "Assets",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Assets_ContentItems_ContentItemId",
table: "Assets",
column: "ContentItemId",
principalTable: "ContentItems",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Assets_Workspaces_WorkspaceId",
table: "Assets",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Campaigns_Clients_ClientId",
table: "Campaigns",
column: "ClientId",
principalTable: "Clients",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Campaigns_Workspaces_WorkspaceId",
table: "Campaigns",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Channels_Workspaces_WorkspaceId",
table: "Channels",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Clients_Workspaces_WorkspaceId",
table: "Clients",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Comments_Comments_ParentCommentId",
table: "Comments",
column: "ParentCommentId",
principalTable: "Comments",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Comments_ContentItems_ContentItemId",
table: "Comments",
column: "ContentItemId",
principalTable: "ContentItems",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Comments_Workspaces_WorkspaceId",
table: "Comments",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ContentItemActivityEntries_ContentItems_ContentItemId",
table: "ContentItemActivityEntries",
column: "ContentItemId",
principalTable: "ContentItems",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ContentItemActivityEntries_Workspaces_WorkspaceId",
table: "ContentItemActivityEntries",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ContentItemRevisions_ContentItems_ContentItemId",
table: "ContentItemRevisions",
column: "ContentItemId",
principalTable: "ContentItems",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_ContentItems_Campaigns_CampaignId",
table: "ContentItems",
column: "CampaignId",
principalTable: "Campaigns",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ContentItems_Clients_ClientId",
table: "ContentItems",
column: "ClientId",
principalTable: "Clients",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_ContentItems_Workspaces_WorkspaceId",
table: "ContentItems",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_FeedbackReports_Campaigns_CampaignId",
table: "FeedbackReports",
column: "CampaignId",
principalTable: "Campaigns",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_FeedbackReports_Clients_ClientId",
table: "FeedbackReports",
column: "ClientId",
principalTable: "Clients",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_FeedbackReports_ContentItems_ContentItemId",
table: "FeedbackReports",
column: "ContentItemId",
principalTable: "ContentItems",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_FeedbackReports_Workspaces_WorkspaceId",
table: "FeedbackReports",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_NotificationEvents_ContentItems_ContentItemId",
table: "NotificationEvents",
column: "ContentItemId",
principalTable: "ContentItems",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_NotificationEvents_Workspaces_WorkspaceId",
table: "NotificationEvents",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_WorkspaceApprovalStepConfigurations_Workspaces_WorkspaceId",
table: "WorkspaceApprovalStepConfigurations",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_WorkspaceInvites_Workspaces_WorkspaceId",
table: "WorkspaceInvites",
column: "WorkspaceId",
principalTable: "Workspaces",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_ApprovalDecisions_ApprovalRequests_ApprovalRequestId",
table: "ApprovalDecisions");
migrationBuilder.DropForeignKey(
name: "FK_ApprovalRequests_ApprovalWorkflowInstances_WorkflowInstance~",
table: "ApprovalRequests");
migrationBuilder.DropForeignKey(
name: "FK_ApprovalRequests_ContentItems_ContentItemId",
table: "ApprovalRequests");
migrationBuilder.DropForeignKey(
name: "FK_ApprovalRequests_Workspaces_WorkspaceId",
table: "ApprovalRequests");
migrationBuilder.DropForeignKey(
name: "FK_ApprovalWorkflowInstances_ContentItems_ContentItemId",
table: "ApprovalWorkflowInstances");
migrationBuilder.DropForeignKey(
name: "FK_ApprovalWorkflowInstances_Workspaces_WorkspaceId",
table: "ApprovalWorkflowInstances");
migrationBuilder.DropForeignKey(
name: "FK_AssetRevisions_Assets_AssetId",
table: "AssetRevisions");
migrationBuilder.DropForeignKey(
name: "FK_Assets_ContentItems_ContentItemId",
table: "Assets");
migrationBuilder.DropForeignKey(
name: "FK_Assets_Workspaces_WorkspaceId",
table: "Assets");
migrationBuilder.DropForeignKey(
name: "FK_Campaigns_Clients_ClientId",
table: "Campaigns");
migrationBuilder.DropForeignKey(
name: "FK_Campaigns_Workspaces_WorkspaceId",
table: "Campaigns");
migrationBuilder.DropForeignKey(
name: "FK_Channels_Workspaces_WorkspaceId",
table: "Channels");
migrationBuilder.DropForeignKey(
name: "FK_Clients_Workspaces_WorkspaceId",
table: "Clients");
migrationBuilder.DropForeignKey(
name: "FK_Comments_Comments_ParentCommentId",
table: "Comments");
migrationBuilder.DropForeignKey(
name: "FK_Comments_ContentItems_ContentItemId",
table: "Comments");
migrationBuilder.DropForeignKey(
name: "FK_Comments_Workspaces_WorkspaceId",
table: "Comments");
migrationBuilder.DropForeignKey(
name: "FK_ContentItemActivityEntries_ContentItems_ContentItemId",
table: "ContentItemActivityEntries");
migrationBuilder.DropForeignKey(
name: "FK_ContentItemActivityEntries_Workspaces_WorkspaceId",
table: "ContentItemActivityEntries");
migrationBuilder.DropForeignKey(
name: "FK_ContentItemRevisions_ContentItems_ContentItemId",
table: "ContentItemRevisions");
migrationBuilder.DropForeignKey(
name: "FK_ContentItems_Campaigns_CampaignId",
table: "ContentItems");
migrationBuilder.DropForeignKey(
name: "FK_ContentItems_Clients_ClientId",
table: "ContentItems");
migrationBuilder.DropForeignKey(
name: "FK_ContentItems_Workspaces_WorkspaceId",
table: "ContentItems");
migrationBuilder.DropForeignKey(
name: "FK_FeedbackReports_Campaigns_CampaignId",
table: "FeedbackReports");
migrationBuilder.DropForeignKey(
name: "FK_FeedbackReports_Clients_ClientId",
table: "FeedbackReports");
migrationBuilder.DropForeignKey(
name: "FK_FeedbackReports_ContentItems_ContentItemId",
table: "FeedbackReports");
migrationBuilder.DropForeignKey(
name: "FK_FeedbackReports_Workspaces_WorkspaceId",
table: "FeedbackReports");
migrationBuilder.DropForeignKey(
name: "FK_NotificationEvents_ContentItems_ContentItemId",
table: "NotificationEvents");
migrationBuilder.DropForeignKey(
name: "FK_NotificationEvents_Workspaces_WorkspaceId",
table: "NotificationEvents");
migrationBuilder.DropForeignKey(
name: "FK_WorkspaceApprovalStepConfigurations_Workspaces_WorkspaceId",
table: "WorkspaceApprovalStepConfigurations");
migrationBuilder.DropForeignKey(
name: "FK_WorkspaceInvites_Workspaces_WorkspaceId",
table: "WorkspaceInvites");
migrationBuilder.DropIndex(
name: "IX_FeedbackReports_CampaignId",
table: "FeedbackReports");
migrationBuilder.DropIndex(
name: "IX_FeedbackReports_ClientId",
table: "FeedbackReports");
migrationBuilder.DropIndex(
name: "IX_FeedbackReports_ContentItemId",
table: "FeedbackReports");
}
}
}

View File

@@ -1359,6 +1359,12 @@ namespace Socialize.Api.Migrations
b.HasKey("Id");
b.HasIndex("CampaignId");
b.HasIndex("ClientId");
b.HasIndex("ContentItemId");
b.HasIndex("LastActivityAt");
b.HasIndex("ReporterUserId");
@@ -1856,6 +1862,83 @@ namespace Socialize.Api.Migrations
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Approvals.Data.ApprovalDecision", b =>
{
b.HasOne("Socialize.Api.Modules.Approvals.Data.ApprovalRequest", null)
.WithMany()
.HasForeignKey("ApprovalRequestId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Approvals.Data.ApprovalRequest", b =>
{
b.HasOne("Socialize.Api.Modules.ContentItems.Data.ContentItem", null)
.WithMany()
.HasForeignKey("ContentItemId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Socialize.Api.Modules.Approvals.Data.ApprovalWorkflowInstance", null)
.WithMany()
.HasForeignKey("WorkflowInstanceId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Approvals.Data.ApprovalWorkflowInstance", b =>
{
b.HasOne("Socialize.Api.Modules.ContentItems.Data.ContentItem", null)
.WithMany()
.HasForeignKey("ContentItemId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Approvals.Data.WorkspaceApprovalStepConfiguration", b =>
{
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Assets.Data.Asset", b =>
{
b.HasOne("Socialize.Api.Modules.ContentItems.Data.ContentItem", null)
.WithMany()
.HasForeignKey("ContentItemId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Assets.Data.AssetRevision", b =>
{
b.HasOne("Socialize.Api.Modules.Assets.Data.Asset", null)
.WithMany()
.HasForeignKey("AssetId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.CalendarIntegrations.Data.CalendarEvent", b =>
{
b.HasOne("Socialize.Api.Modules.CalendarIntegrations.Data.CalendarSource", null)
@@ -1865,6 +1948,104 @@ namespace Socialize.Api.Migrations
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Campaigns.Data.Campaign", b =>
{
b.HasOne("Socialize.Api.Modules.Clients.Data.Client", null)
.WithMany()
.HasForeignKey("ClientId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Channels.Data.Channel", b =>
{
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Clients.Data.Client", b =>
{
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Comments.Data.Comment", b =>
{
b.HasOne("Socialize.Api.Modules.ContentItems.Data.ContentItem", null)
.WithMany()
.HasForeignKey("ContentItemId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Socialize.Api.Modules.Comments.Data.Comment", null)
.WithMany()
.HasForeignKey("ParentCommentId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.ContentItems.Data.ContentItem", b =>
{
b.HasOne("Socialize.Api.Modules.Campaigns.Data.Campaign", null)
.WithMany()
.HasForeignKey("CampaignId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Socialize.Api.Modules.Clients.Data.Client", null)
.WithMany()
.HasForeignKey("ClientId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.ContentItems.Data.ContentItemActivityEntry", b =>
{
b.HasOne("Socialize.Api.Modules.ContentItems.Data.ContentItem", null)
.WithMany()
.HasForeignKey("ContentItemId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.ContentItems.Data.ContentItemRevision", b =>
{
b.HasOne("Socialize.Api.Modules.ContentItems.Data.ContentItem", null)
.WithMany()
.HasForeignKey("ContentItemId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Feedback.Data.FeedbackActivityEntry", b =>
{
b.HasOne("Socialize.Api.Modules.Feedback.Data.FeedbackReport", "FeedbackReport")
@@ -1887,6 +2068,29 @@ namespace Socialize.Api.Migrations
b.Navigation("FeedbackReport");
});
modelBuilder.Entity("Socialize.Api.Modules.Feedback.Data.FeedbackReport", b =>
{
b.HasOne("Socialize.Api.Modules.Campaigns.Data.Campaign", null)
.WithMany()
.HasForeignKey("CampaignId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Socialize.Api.Modules.Clients.Data.Client", null)
.WithMany()
.HasForeignKey("ClientId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Socialize.Api.Modules.ContentItems.Data.ContentItem", null)
.WithMany()
.HasForeignKey("ContentItemId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.SetNull);
});
modelBuilder.Entity("Socialize.Api.Modules.Feedback.Data.FeedbackScreenshot", b =>
{
b.HasOne("Socialize.Api.Modules.Feedback.Data.FeedbackReport", "FeedbackReport")
@@ -1909,6 +2113,20 @@ namespace Socialize.Api.Migrations
b.Navigation("FeedbackReport");
});
modelBuilder.Entity("Socialize.Api.Modules.Notifications.Data.NotificationEvent", b =>
{
b.HasOne("Socialize.Api.Modules.ContentItems.Data.ContentItem", null)
.WithMany()
.HasForeignKey("ContentItemId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Organizations.Data.OrganizationMembership", b =>
{
b.HasOne("Socialize.Api.Modules.Organizations.Data.Organization", null)
@@ -1927,6 +2145,15 @@ namespace Socialize.Api.Migrations
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Workspaces.Data.WorkspaceInvite", b =>
{
b.HasOne("Socialize.Api.Modules.Workspaces.Data.Workspace", null)
.WithMany()
.HasForeignKey("WorkspaceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Socialize.Api.Modules.Feedback.Data.FeedbackReport", b =>
{
b.Navigation("ActivityEntries");