using System.Text.Json; using Tiku.Application.Jobs; namespace Tiku.Api.Contracts; /// /// 创建租户后台任务请求。 /// public sealed class CreateBackgroundJobDto { /// /// 任务类型。 /// public string JobType { get; set; } = string.Empty; /// /// 任务载荷。 /// public JsonElement Payload { get; set; } /// /// 计划运行时间。 /// public DateTimeOffset? RunAfter { get; set; } /// /// 最大重试次数。 /// public int MaxRetries { get; set; } = 3; public CreateBackgroundJobCommand ToCommand(Guid tenantId) { return new CreateBackgroundJobCommand( tenantId, JobType, Payload.ValueKind == JsonValueKind.Undefined ? JsonSerializer.SerializeToElement(new { }) : Payload, RunAfter, MaxRetries); } }