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

@@ -3,12 +3,16 @@ using Tiku.Domain.Common;
namespace Tiku.Domain.Tenancy;
public sealed class TenantAuthProvider : AuditableTenantEntity
public sealed class TenantExternalProvider : AuditableTenantEntity
{
public TenantExternalProviderCapability Capability { get; set; } = TenantExternalProviderCapability.Identity;
public string Provider { get; set; } = string.Empty;
public TenantAuthProviderStatus Status { get; set; } = TenantAuthProviderStatus.Disabled;
public TenantExternalProviderStatus Status { get; set; } = TenantExternalProviderStatus.Disabled;
public string? DisplayName { get; set; }
public string? SecretRef { get; set; }
public int Priority { get; set; } = 100;
public JsonElement ConfigPublic { get; set; } = JsonDefaults.Object();
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
}
public sealed class TenantSecret : AuditableTenantEntity
@@ -154,7 +158,8 @@ public sealed class TenantStudentFollowup : AuditableTenantEntity
public Guid? UpdatedBy { get; set; }
}
public enum TenantAuthProviderStatus { Active, Disabled, Testing }
public enum TenantExternalProviderCapability { Identity, ObjectStorage, Sms, Payment, Notification }
public enum TenantExternalProviderStatus { Active, Disabled, Testing }
public enum TenantSecretStatus { Active, Disabled, Rotating }
public enum SmsPurpose { Login, BindPhone, ResetPassword }
public enum SmsVerificationStatus { Pending, Sent, Verified, Expired, Blocked }