feat: modularize external providers

This commit is contained in:
2026-07-27 17:47:21 +08:00
parent db4c7b4496
commit 70b99e6063
47 changed files with 1219 additions and 667 deletions

View File

@@ -6,18 +6,21 @@ using Tiku.Domain.Tenancy;
namespace Tiku.Infrastructure.Persistence.Configurations;
internal sealed class TenantAuthProviderConfiguration : IEntityTypeConfiguration<TenantAuthProvider>
internal sealed class TenantExternalProviderConfiguration : IEntityTypeConfiguration<TenantExternalProvider>
{
public void Configure(EntityTypeBuilder<TenantAuthProvider> builder)
public void Configure(EntityTypeBuilder<TenantExternalProvider> builder)
{
builder.ConfigureTenantEntity("tenant_auth_providers");
builder.ConfigureTenantEntity("tenant_external_providers");
builder.ConfigureTimestamps();
builder.Property(entity => entity.Capability).HasSnakeCaseEnum();
builder.Property(entity => entity.Provider).HasMaxLength(50);
builder.Property(entity => entity.Status).HasSnakeCaseEnum();
builder.Property(entity => entity.DisplayName).HasMaxLength(200);
builder.Property(entity => entity.SecretRef).HasMaxLength(300);
builder.Property(entity => entity.ConfigPublic).IsJson("{}");
builder.HasIndex(entity => new { entity.TenantId, entity.Provider }).IsUnique();
builder.HasIndex(entity => new { entity.TenantId, entity.Provider, entity.Status });
builder.Property(entity => entity.Metadata).IsJson("{}");
builder.HasIndex(entity => new { entity.TenantId, entity.Capability, entity.Provider }).IsUnique();
builder.HasIndex(entity => new { entity.TenantId, entity.Capability, entity.Status, entity.Priority });
}
}