using TakeoutSaaS.Module.Sms.Models;

namespace TakeoutSaaS.Module.Sms.Abstractions;

/// <summary>
/// 短信发送抽象。
/// </summary>
public interface ISmsSender
{
    /// <summary>
    /// 服务商类型。
    /// </summary>
    SmsProviderKind Provider { get; }

    /// <summary>
    /// 发送短信。
    /// </summary>
    Task<SmsSendResult> SendAsync(SmsSendRequest request, CancellationToken cancellationToken = default);
}
