namespace ROLAC.API.Services.Notifications;
/// Outcome of a webhook-driven binding attempt.
public sealed record LineBindingResult(bool Success, string Message, int? MemberId);
///
/// Line-specific notification operations: outbound push to bound members/groups, plus the
/// webhook-driven binding-code generation/consumption and group registration.
///
public interface ILineNotificationService
{
Task SendLineAsync(string body, int[] memberIds, int[] groupIds,
string sentByUserId, CancellationToken ct = default);
Task GenerateLineBindingCodeAsync(int memberId, CancellationToken ct = default);
Task TryBindMemberAsync(string externalId, string code, CancellationToken ct = default);
Task RegisterGroupAsync(string externalId, CancellationToken ct = default);
Task DeactivateGroupAsync(string externalId, CancellationToken ct = default);
}