wip
This commit is contained in:
@@ -6,10 +6,28 @@ public static class ApprovalModelConfiguration
|
||||
{
|
||||
public static ModelBuilder ConfigureApprovalsModule(this ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<ApprovalWorkflowInstance>(workflowInstance =>
|
||||
{
|
||||
workflowInstance.ToTable("ApprovalWorkflowInstances");
|
||||
workflowInstance.HasKey(x => x.Id);
|
||||
workflowInstance.Property(x => x.State).HasMaxLength(64).IsRequired();
|
||||
workflowInstance.Property(x => x.ApprovalMode).HasMaxLength(64).IsRequired();
|
||||
workflowInstance.Property(x => x.StartedAt)
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasDefaultValueSql("CURRENT_TIMESTAMP");
|
||||
workflowInstance.HasIndex(x => x.WorkspaceId);
|
||||
workflowInstance.HasIndex(x => x.ContentItemId);
|
||||
workflowInstance.HasIndex(x => new { x.ContentItemId, x.State })
|
||||
.IsUnique()
|
||||
.HasFilter("\"State\" = 'Pending'");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<ApprovalRequest>(approvalRequest =>
|
||||
{
|
||||
approvalRequest.ToTable("ApprovalRequests");
|
||||
approvalRequest.HasKey(x => x.Id);
|
||||
approvalRequest.Property(x => x.WorkflowStepTargetType).HasMaxLength(32);
|
||||
approvalRequest.Property(x => x.WorkflowStepTargetValue).HasMaxLength(128);
|
||||
approvalRequest.Property(x => x.Stage).HasMaxLength(64).IsRequired();
|
||||
approvalRequest.Property(x => x.ReviewerName).HasMaxLength(256).IsRequired();
|
||||
approvalRequest.Property(x => x.ReviewerEmail).HasMaxLength(256).IsRequired();
|
||||
@@ -20,6 +38,7 @@ public static class ApprovalModelConfiguration
|
||||
.HasDefaultValueSql("CURRENT_TIMESTAMP");
|
||||
approvalRequest.HasIndex(x => x.WorkspaceId);
|
||||
approvalRequest.HasIndex(x => x.ContentItemId);
|
||||
approvalRequest.HasIndex(x => x.WorkflowInstanceId);
|
||||
approvalRequest.HasIndex(x => x.ReviewerEmail);
|
||||
});
|
||||
|
||||
@@ -37,6 +56,21 @@ public static class ApprovalModelConfiguration
|
||||
approvalDecision.HasIndex(x => x.ApprovalRequestId);
|
||||
});
|
||||
|
||||
modelBuilder.Entity<WorkspaceApprovalStepConfiguration>(approvalStep =>
|
||||
{
|
||||
approvalStep.ToTable("WorkspaceApprovalStepConfigurations");
|
||||
approvalStep.HasKey(x => x.Id);
|
||||
approvalStep.Property(x => x.Name).HasMaxLength(128).IsRequired();
|
||||
approvalStep.Property(x => x.TargetType).HasMaxLength(32).IsRequired();
|
||||
approvalStep.Property(x => x.TargetValue).HasMaxLength(128).IsRequired();
|
||||
approvalStep.Property(x => x.RequiredApproverCount).HasDefaultValue(1);
|
||||
approvalStep.Property(x => x.CreatedAt)
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasDefaultValueSql("CURRENT_TIMESTAMP");
|
||||
approvalStep.HasIndex(x => x.WorkspaceId);
|
||||
approvalStep.HasIndex(x => new { x.WorkspaceId, x.SortOrder }).IsUnique();
|
||||
});
|
||||
|
||||
return modelBuilder;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user