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