diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a2af72..12b6f76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.11.0] - 2025-01-10 +### Added +- Context.MessageId on RichMessages supporting WhatsApp for referencing a previous message + ## [2.10.0] - 2024-12-30 ### Added - Polymorphic type discriminators on IRichMessage for deserialization diff --git a/CM.Text/BusinessMessaging/Model/MultiChannel/ContactMessage.cs b/CM.Text/BusinessMessaging/Model/MultiChannel/ContactMessage.cs index f40046c..70984af 100644 --- a/CM.Text/BusinessMessaging/Model/MultiChannel/ContactMessage.cs +++ b/CM.Text/BusinessMessaging/Model/MultiChannel/ContactMessage.cs @@ -18,6 +18,13 @@ public class ContactMessage : IRichMessage /// [JsonPropertyName("contacts")] public Contact[] Contacts { get; set; } + + /// + /// Contextual properties of the message + /// + [JsonPropertyName("context")] + [CanBeNull] + public MessageContext MessageContext { get; set; } } /// diff --git a/CM.Text/BusinessMessaging/Model/MultiChannel/LocationPushMessage.cs b/CM.Text/BusinessMessaging/Model/MultiChannel/LocationPushMessage.cs index 6193596..bc31fed 100644 --- a/CM.Text/BusinessMessaging/Model/MultiChannel/LocationPushMessage.cs +++ b/CM.Text/BusinessMessaging/Model/MultiChannel/LocationPushMessage.cs @@ -15,5 +15,12 @@ public class LocationPushMessage : IRichMessage /// [JsonPropertyName("location")] public ViewLocationOptions Location { get; set; } + + /// + /// Contextual properties of the message. Only applicable to + /// + [JsonPropertyName("context")] + [CanBeNull] + public MessageContext MessageContext { get; set; } } } diff --git a/CM.Text/BusinessMessaging/Model/MultiChannel/MediaMessage.cs b/CM.Text/BusinessMessaging/Model/MultiChannel/MediaMessage.cs index b4aed6d..b866de9 100644 --- a/CM.Text/BusinessMessaging/Model/MultiChannel/MediaMessage.cs +++ b/CM.Text/BusinessMessaging/Model/MultiChannel/MediaMessage.cs @@ -33,5 +33,12 @@ public MediaMessage(string mediaName, string mediaUri, string mimeType) /// [JsonPropertyName("media")] public MediaContent Media { get; set; } + + /// + /// Contextual properties of the message. Only applicable to + /// + [JsonPropertyName("context")] + [CanBeNull] + public MessageContext MessageContext { get; set; } } } diff --git a/CM.Text/BusinessMessaging/Model/MultiChannel/MessageContext.cs b/CM.Text/BusinessMessaging/Model/MultiChannel/MessageContext.cs new file mode 100644 index 0000000..dbf82b7 --- /dev/null +++ b/CM.Text/BusinessMessaging/Model/MultiChannel/MessageContext.cs @@ -0,0 +1,19 @@ +using System.Text.Json.Serialization; +using JetBrains.Annotations; + +namespace CM.Text.BusinessMessaging.Model.MultiChannel +{ + /// + /// Contextual properties of the message. Currently only applicable to + /// Docs: https://developers.cm.com/messaging/docs/whatsapp-inbound#mt-replies-mo + /// + public class MessageContext + { + /// + /// Message ID to which the current message is a reply + /// + [JsonPropertyName("message_id")] + [CanBeNull] + public string MessageId { get; set; } + } +} diff --git a/CM.Text/BusinessMessaging/Model/MultiChannel/TemplateMessage.cs b/CM.Text/BusinessMessaging/Model/MultiChannel/TemplateMessage.cs index e7690f8..bfeffaa 100644 --- a/CM.Text/BusinessMessaging/Model/MultiChannel/TemplateMessage.cs +++ b/CM.Text/BusinessMessaging/Model/MultiChannel/TemplateMessage.cs @@ -17,5 +17,12 @@ public class TemplateMessage : IRichMessage /// [JsonPropertyName("template")] public TemplateMessageContent Content { get; set; } + + /// + /// Contextual properties of the message + /// + [JsonPropertyName("context")] + [CanBeNull] + public MessageContext MessageContext { get; set; } } } diff --git a/CM.Text/BusinessMessaging/Model/MultiChannel/TextMessage.cs b/CM.Text/BusinessMessaging/Model/MultiChannel/TextMessage.cs index 5287a68..43b4f9d 100644 --- a/CM.Text/BusinessMessaging/Model/MultiChannel/TextMessage.cs +++ b/CM.Text/BusinessMessaging/Model/MultiChannel/TextMessage.cs @@ -44,5 +44,12 @@ public TextMessage(string text) /// [JsonPropertyName("suggestions")] public SuggestionBase[] Suggestions { get; set; } + + /// + /// Contextual properties of the message. Currently only applicable to + /// + [JsonPropertyName("context")] + [CanBeNull] + public MessageContext MessageContext { get; set; } } } diff --git a/CM.Text/BusinessMessaging/Model/MultiChannel/WhatsAppInteractiveMessage.cs b/CM.Text/BusinessMessaging/Model/MultiChannel/WhatsAppInteractiveMessage.cs index 36132c4..dc3cd8d 100644 --- a/CM.Text/BusinessMessaging/Model/MultiChannel/WhatsAppInteractiveMessage.cs +++ b/CM.Text/BusinessMessaging/Model/MultiChannel/WhatsAppInteractiveMessage.cs @@ -16,6 +16,13 @@ public class WhatsAppInteractiveMessage : IRichMessage /// [JsonPropertyName("interactive")] public WhatsAppInteractiveContent whatsAppInteractiveContent { get; set; } + + /// + /// Contextual properties of the message + /// + [JsonPropertyName("context")] + [CanBeNull] + public MessageContext MessageContext { get; set; } } /// diff --git a/CM.Text/CM.Text.csproj b/CM.Text/CM.Text.csproj index a9ff480..f8d9970 100644 --- a/CM.Text/CM.Text.csproj +++ b/CM.Text/CM.Text.csproj @@ -13,12 +13,12 @@ LICENSE icon.png $([System.IO.File]::ReadAllText("$(MSBuildProjectDirectory)/../CHANGELOG.md")) - 2.10.0 + 2.11.0 https://github.com/cmdotcom/text-sdk-dotnet en true - 2.10.0 - 2.10.0 + 2.11.0 + 2.11.0 True