using GmRelay.Shared.Rendering; namespace GmRelay.Shared.Platform; public sealed record PlatformMessageRef( PlatformKind Platform, string ExternalGroupId, string? ExternalThreadId, string ExternalMessageId); public sealed record PlatformMessageAction( string Key, string Label, string Payload); public sealed record PlatformScheduleMessage( PlatformGroup Group, SessionBatchViewModel View, PlatformMessageRef? ExistingMessage, string? ImageReference = null); public sealed record PlatformPrivateMessage( PlatformUser Recipient, string HtmlText); public sealed record PlatformInteractionReply( string InteractionId, string Text, bool ShowAlert = false); public sealed record PlatformCalendarFile( PlatformGroup Group, string FileName, byte[] Content, string CaptionHtml, IReadOnlyList Actions);