// using System.Text.Json.Serialization; // using LibMatrix.EventTypes; // // namespace LibMatrix.LegacyEvents.EventTypes.Spec; // // [MatrixEvent(EventId)] // public class RoomMessageEventContent : MatrixEventContent { // public const string EventId = "m.room.message"; // // public RoomMessageEventContent(string messageType = "m.notice", string? body = null) { // MessageType = messageType; // Body = body ?? ""; // } // // [JsonPropertyName("body")] // public string Body { get; set; } // // [JsonPropertyName("msgtype")] // public string MessageType { get; set; } = "m.notice"; // // [JsonPropertyName("formatted_body")] // public string? FormattedBody { get; set; } // // [JsonPropertyName("format")] // public string? Format { get; set; } // // /// // /// Media URI for this message, if any // /// // [JsonPropertyName("url")] // public string? Url { get; set; } // // public string? FileName { get; set; } // // [JsonPropertyName("info")] // public FileInfoStruct? FileInfo { get; set; } // // [JsonIgnore] // public string BodyWithoutReplyFallback => Body.Split('\n').SkipWhile(x => x.StartsWith(">")).SkipWhile(x=>x.Trim().Length == 0).Aggregate((x, y) => $"{x}\n{y}"); // // public class FileInfoStruct { // [JsonPropertyName("mimetype")] // public string? MimeType { get; set; } // // [JsonPropertyName("size")] // public long Size { get; set; } // // [JsonPropertyName("thumbnail_url")] // public string? ThumbnailUrl { get; set; } // // [JsonPropertyName("w")] // public int? Width { get; set; } // // [JsonPropertyName("h")] // public int? Height { get; set; } // } // }