namespace GmRelay.Shared.Platform; public interface IPlatformMessenger { Task SendScheduleAsync(PlatformScheduleMessage message, CancellationToken ct); Task UpdateScheduleAsync(PlatformScheduleMessage message, CancellationToken ct); Task SendGroupMessageAsync(PlatformGroup group, string htmlText, CancellationToken ct); Task SendPrivateMessageAsync(PlatformPrivateMessage message, CancellationToken ct); Task AnswerInteractionAsync(PlatformInteractionReply reply, CancellationToken ct); Task SendCalendarFileAsync(PlatformCalendarFile file, CancellationToken ct); Task SendConfirmationRequestAsync(PlatformConfirmationRequest request, CancellationToken ct) => throw new NotSupportedException("This platform messenger does not support confirmation requests."); Task UpdateConfirmationRequestAsync(PlatformRsvpMessageUpdate update, CancellationToken ct) => throw new NotSupportedException("This platform messenger does not support confirmation request updates."); Task SendJoinLinkNotificationAsync(PlatformJoinLinkNotification notification, CancellationToken ct) => throw new NotSupportedException("This platform messenger does not support join-link notifications."); Task SendDirectSessionNotificationAsync(PlatformDirectSessionNotification notification, CancellationToken ct) => throw new NotSupportedException("This platform messenger does not support direct session notifications."); Task SendRsvpOutcomeAsync(PlatformRsvpOutcomeNotification notification, CancellationToken ct) => throw new NotSupportedException("This platform messenger does not support RSVP outcome notifications."); Task UpdateRescheduleVoteAsync(PlatformRescheduleVoteUpdate update, CancellationToken ct) => throw new NotSupportedException("This platform messenger does not support reschedule vote updates."); }