refactor: contain backend feature mappings
Some checks failed
Backend CI/CD / build_and_deploy (push) Has been cancelled
Frontend CI/CD / build_and_deploy (push) Has been cancelled

This commit is contained in:
2026-04-25 01:14:01 -04:00
parent 121757546a
commit 20f8a14bfb
10 changed files with 308 additions and 190 deletions

View File

@@ -0,0 +1,40 @@
namespace Socialize.Modules.Approvals.Data;
public static class ApprovalModelConfiguration
{
public static ModelBuilder ConfigureApprovalsModule(this ModelBuilder modelBuilder)
{
modelBuilder.Entity<ApprovalRequest>(approvalRequest =>
{
approvalRequest.ToTable("ApprovalRequests");
approvalRequest.HasKey(x => x.Id);
approvalRequest.Property(x => x.Stage).HasMaxLength(64).IsRequired();
approvalRequest.Property(x => x.ReviewerName).HasMaxLength(256).IsRequired();
approvalRequest.Property(x => x.ReviewerEmail).HasMaxLength(256).IsRequired();
approvalRequest.Property(x => x.State).HasMaxLength(64).IsRequired();
approvalRequest.Property(x => x.AccessToken).HasMaxLength(64).IsRequired();
approvalRequest.Property(x => x.SentAt)
.ValueGeneratedOnAdd()
.HasDefaultValueSql("CURRENT_TIMESTAMP");
approvalRequest.HasIndex(x => x.WorkspaceId);
approvalRequest.HasIndex(x => x.ContentItemId);
approvalRequest.HasIndex(x => x.ReviewerEmail);
});
modelBuilder.Entity<ApprovalDecision>(approvalDecision =>
{
approvalDecision.ToTable("ApprovalDecisions");
approvalDecision.HasKey(x => x.Id);
approvalDecision.Property(x => x.Decision).HasMaxLength(64).IsRequired();
approvalDecision.Property(x => x.Comment).HasMaxLength(2048);
approvalDecision.Property(x => x.DecidedByName).HasMaxLength(256).IsRequired();
approvalDecision.Property(x => x.DecidedByEmail).HasMaxLength(256).IsRequired();
approvalDecision.Property(x => x.CreatedAt)
.ValueGeneratedOnAdd()
.HasDefaultValueSql("CURRENT_TIMESTAMP");
approvalDecision.HasIndex(x => x.ApprovalRequestId);
});
return modelBuilder;
}
}