forked from gongxuegit/tiku-backend.net
feat(platform): add CRM SMS and payment settings
This commit is contained in:
@@ -110,6 +110,54 @@ public sealed class SmsSendRateLimit : ITenantOwned
|
||||
public DateTimeOffset UpdatedAt { get; set; } = DateTimeOffset.UtcNow;
|
||||
}
|
||||
|
||||
public sealed class SmsChannel : AuditableTenantEntity
|
||||
{
|
||||
public string Provider { get; set; } = "generic";
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Signature { get; set; } = string.Empty;
|
||||
public string Scene { get; set; } = "login";
|
||||
public TenantExternalProviderStatus Status { get; set; } = TenantExternalProviderStatus.Disabled;
|
||||
public string? SecretRef { get; set; }
|
||||
public int Priority { get; set; } = 100;
|
||||
public int MonthlyQuota { get; set; }
|
||||
public JsonElement ConfigPublic { get; set; } = JsonDefaults.Object();
|
||||
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
|
||||
}
|
||||
|
||||
public sealed class SmsTemplate : AuditableTenantEntity
|
||||
{
|
||||
public Guid ChannelId { get; set; }
|
||||
public string Code { get; set; } = string.Empty;
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public SmsTemplateType Type { get; set; } = SmsTemplateType.Notification;
|
||||
public SmsTemplateAuditStatus AuditStatus { get; set; } = SmsTemplateAuditStatus.Draft;
|
||||
public SmsTemplateStatus Status { get; set; } = SmsTemplateStatus.Active;
|
||||
public string? ProviderTemplateCode { get; set; }
|
||||
public string Content { get; set; } = string.Empty;
|
||||
public string? Remark { get; set; }
|
||||
public DateTimeOffset? SubmittedAt { get; set; }
|
||||
public DateTimeOffset? ApprovedAt { get; set; }
|
||||
public DateTimeOffset? DisabledAt { get; set; }
|
||||
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
|
||||
}
|
||||
|
||||
public sealed class SmsSendLog : Entity, ITenantOwned
|
||||
{
|
||||
public Guid TenantId { get; set; }
|
||||
public Guid? ChannelId { get; set; }
|
||||
public Guid? TemplateId { get; set; }
|
||||
public string Provider { get; set; } = "generic";
|
||||
public string Scene { get; set; } = string.Empty;
|
||||
public string? PhoneMasked { get; set; }
|
||||
public SmsSendLogStatus Status { get; set; } = SmsSendLogStatus.Pending;
|
||||
public string? ProviderMessageId { get; set; }
|
||||
public string? ErrorCode { get; set; }
|
||||
public string? ErrorMessage { get; set; }
|
||||
public DateTimeOffset? SentAt { get; set; }
|
||||
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
|
||||
public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow;
|
||||
}
|
||||
|
||||
public sealed class TenantClass : AuditableTenantEntity
|
||||
{
|
||||
public Guid? RegionId { get; set; }
|
||||
@@ -172,6 +220,10 @@ 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, Failed }
|
||||
public enum SmsTemplateType { VerificationCode, Marketing, Notification }
|
||||
public enum SmsTemplateAuditStatus { Draft, PendingReview, Approved, Rejected }
|
||||
public enum SmsTemplateStatus { Active, Disabled }
|
||||
public enum SmsSendLogStatus { Pending, Sent, Failed }
|
||||
public enum AuthLoginResult { Sent, Success, Failed, Blocked }
|
||||
public enum SmsRateLimitDimension { Tenant, Phone, Ip, Device }
|
||||
public enum TenantRecordStatus { Active, Disabled, Archived }
|
||||
|
||||
Reference in New Issue
Block a user