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);
}
}