forked from gongxuegit/tiku-backend.net
feat(platform): add CRM SMS and payment settings
This commit is contained in:
175
Tiku.Api/Contracts/PlatformTenantCapabilitiesDtos.cs
Normal file
175
Tiku.Api/Contracts/PlatformTenantCapabilitiesDtos.cs
Normal file
@@ -0,0 +1,175 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json;
|
||||
using Tiku.Application.PlatformAdmin;
|
||||
using Tiku.Application.Tenancy;
|
||||
using Tiku.Domain.Common;
|
||||
using Tiku.Domain.Platform;
|
||||
using Tiku.Domain.Tenancy;
|
||||
|
||||
namespace Tiku.Api.Contracts;
|
||||
|
||||
public class PlatformCapabilityQueryDto
|
||||
{
|
||||
public Guid? TenantId { get; set; }
|
||||
[StringLength(50)]
|
||||
public string? Status { get; set; }
|
||||
[Range(1, 500)]
|
||||
public int Limit { get; set; } = 100;
|
||||
|
||||
public PlatformCapabilityQuery ToQuery() => new(TenantId, Status, Limit);
|
||||
}
|
||||
|
||||
public sealed class UpsertPlatformCrmConfigDto
|
||||
{
|
||||
public Guid? Id { get; set; }
|
||||
[Required]
|
||||
public Guid TenantId { get; set; }
|
||||
public bool Enabled { get; set; }
|
||||
[StringLength(2048)]
|
||||
public string? Url { get; set; }
|
||||
[StringLength(300)]
|
||||
public string? SecretRef { get; set; }
|
||||
[StringLength(200)]
|
||||
public string? FormName { get; set; }
|
||||
[StringLength(100)]
|
||||
public string? ExamType { get; set; }
|
||||
[Range(1, 120)]
|
||||
public int? TimeoutSeconds { get; set; }
|
||||
[Range(0, 86400)]
|
||||
public int? DelaySeconds { get; set; }
|
||||
[StringLength(50)]
|
||||
public string? AssignmentMode { get; set; }
|
||||
public JsonElement? AssignmentPool { get; set; }
|
||||
public JsonElement? AssignmentConfig { get; set; }
|
||||
|
||||
public UpsertPlatformCrmConfigCommand ToCommand() =>
|
||||
new(Id, TenantId, Enabled, Url, SecretRef, FormName, ExamType, TimeoutSeconds, DelaySeconds, AssignmentMode, AssignmentPool, AssignmentConfig);
|
||||
}
|
||||
|
||||
public sealed class RetryPlatformCrmLeadDto
|
||||
{
|
||||
[Required]
|
||||
public Guid QueueId { get; set; }
|
||||
[StringLength(500)]
|
||||
public string? Note { get; set; }
|
||||
|
||||
public PlatformCrmLeadRetryCommand ToCommand() => new(QueueId, Note);
|
||||
}
|
||||
|
||||
public sealed class PlatformCrmLogQueryDto : PlatformCapabilityQueryDto
|
||||
{
|
||||
public Guid? QueueId { get; set; }
|
||||
}
|
||||
|
||||
public sealed class UpsertPlatformSmsChannelDto
|
||||
{
|
||||
public Guid? Id { get; set; }
|
||||
[Required]
|
||||
public Guid TenantId { get; set; }
|
||||
[Required, StringLength(80)]
|
||||
public string Provider { get; set; } = "generic";
|
||||
[Required, StringLength(200)]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
[Required, StringLength(100)]
|
||||
public string Signature { get; set; } = string.Empty;
|
||||
[Required, StringLength(100)]
|
||||
public string Scene { get; set; } = "login";
|
||||
public TenantExternalProviderStatus Status { get; set; } = TenantExternalProviderStatus.Disabled;
|
||||
[StringLength(300)]
|
||||
public string? SecretRef { get; set; }
|
||||
public int? Priority { get; set; }
|
||||
[Range(0, int.MaxValue)]
|
||||
public int? MonthlyQuota { get; set; }
|
||||
public JsonElement ConfigPublic { get; set; } = JsonDefaults.Object();
|
||||
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
|
||||
|
||||
public UpsertPlatformSmsChannelCommand ToCommand() =>
|
||||
new(Id, TenantId, Provider, Name, Signature, Scene, Status, SecretRef, Priority, MonthlyQuota, ConfigPublic, Metadata);
|
||||
}
|
||||
|
||||
public sealed class UpsertPlatformSmsTemplateDto
|
||||
{
|
||||
public Guid? Id { get; set; }
|
||||
[Required]
|
||||
public Guid TenantId { get; set; }
|
||||
[Required]
|
||||
public Guid ChannelId { get; set; }
|
||||
[Required, StringLength(120)]
|
||||
public string Code { get; set; } = string.Empty;
|
||||
[Required, StringLength(200)]
|
||||
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;
|
||||
[StringLength(120)]
|
||||
public string? ProviderTemplateCode { get; set; }
|
||||
[Required, StringLength(1000)]
|
||||
public string Content { get; set; } = string.Empty;
|
||||
[StringLength(500)]
|
||||
public string? Remark { get; set; }
|
||||
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
|
||||
|
||||
public UpsertPlatformSmsTemplateCommand ToCommand() =>
|
||||
new(Id, TenantId, ChannelId, Code, Name, Type, AuditStatus, Status, ProviderTemplateCode, Content, Remark, Metadata);
|
||||
}
|
||||
|
||||
public sealed class UpsertPlatformPaymentAppDto
|
||||
{
|
||||
public Guid? Id { get; set; }
|
||||
[Required, StringLength(100)]
|
||||
public string AppCode { get; set; } = string.Empty;
|
||||
[Required, StringLength(200)]
|
||||
public string AppName { get; set; } = string.Empty;
|
||||
public PlatformPaymentAppStatus Status { get; set; } = PlatformPaymentAppStatus.Disabled;
|
||||
[StringLength(100)]
|
||||
public string SettlementMode { get; set; } = "PlatformCollect";
|
||||
[StringLength(500)]
|
||||
public string? Description { get; set; }
|
||||
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
|
||||
|
||||
public UpsertPlatformPaymentAppCommand ToCommand() =>
|
||||
new(Id, AppCode, AppName, Status, SettlementMode, Description, Metadata);
|
||||
}
|
||||
|
||||
public sealed class UpsertPlatformPaymentChannelDto
|
||||
{
|
||||
public Guid? Id { get; set; }
|
||||
[Required]
|
||||
public Guid AppId { get; set; }
|
||||
[Required, StringLength(80)]
|
||||
public string Provider { get; set; } = "manual";
|
||||
[StringLength(100)]
|
||||
public string Mode { get; set; } = "PlatformCollect";
|
||||
public PlatformPaymentChannelStatus Status { get; set; } = PlatformPaymentChannelStatus.Disabled;
|
||||
[Required, StringLength(200)]
|
||||
public string DisplayName { get; set; } = string.Empty;
|
||||
[StringLength(300)]
|
||||
public string? SecretRef { get; set; }
|
||||
[StringLength(500)]
|
||||
public string? CallbackPath { get; set; }
|
||||
public int? Priority { get; set; }
|
||||
public JsonElement ConfigPublic { get; set; } = JsonDefaults.Object();
|
||||
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
|
||||
|
||||
public UpsertPlatformPaymentChannelCommand ToCommand() =>
|
||||
new(Id, AppId, Provider, Mode, Status, DisplayName, SecretRef, CallbackPath, Priority, ConfigPublic, Metadata);
|
||||
}
|
||||
|
||||
public sealed class UpsertPlatformTenantPaymentAppDto
|
||||
{
|
||||
[Required]
|
||||
public Guid TenantId { get; set; }
|
||||
[Required, StringLength(80)]
|
||||
public string Provider { get; set; } = "manual";
|
||||
public TenantExternalProviderStatus Status { get; set; } = TenantExternalProviderStatus.Disabled;
|
||||
[StringLength(200)]
|
||||
public string? DisplayName { get; set; }
|
||||
[StringLength(300)]
|
||||
public string? SecretRef { get; set; }
|
||||
public int? Priority { get; set; }
|
||||
public JsonElement ConfigPublic { get; set; } = JsonDefaults.Object();
|
||||
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
|
||||
|
||||
public UpsertTenantExternalProviderCommand ToCommand() =>
|
||||
new(TenantExternalProviderCapability.Payment, Provider, Status, DisplayName, SecretRef, Priority, ConfigPublic, Metadata);
|
||||
}
|
||||
Reference in New Issue
Block a user