namespace ROLAC.API.Services.Notifications;

/// <summary>Result of one Line REST call.</summary>
public sealed record MessageSendResult(bool Success, string? Error);

/// <summary>Abstraction over a chat channel's send/reply (Line today; future channels later).</summary>
public interface IMessageChannel
{
    Task<MessageSendResult> PushToUserAsync(string externalId, string text, CancellationToken ct = default);
    Task<MessageSendResult> PushToGroupAsync(string externalId, string text, CancellationToken ct = default);
    Task<MessageSendResult> ReplyAsync(string replyToken, string text, CancellationToken ct = default);
}
