using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.Json.Serialization; using System.Threading.Tasks; namespace FrameworkDAL.DTO.EIPConversation { public class EIPConversationDTO { [JsonPropertyName("message")] public string Message { get; set; } = string.Empty; [JsonPropertyName("from")] public string From { get; set; } = string.Empty; [JsonPropertyName("platform")] public string Platform { get; set; } = "TEXT"; [JsonPropertyName("tenantId")] public int TenantId { get; set; } [JsonPropertyName("channelType")] public EIPChannelType ChannelType { get; set; } [JsonPropertyName("userIdentifier")] public string UserIdentifier { get; set; } [JsonPropertyName("flowcode")] // map lowercase JSON key to FlowCode property public string FlowCode { get; set; } public int ConversationId { get; set; } public string Channel { get; set; } /// /// Populated when the channel message includes a geographic location /// (WhatsApp location type, Telegram location, AppChat HTML5 Geolocation). /// The engine stores this in context.Variables["_Location.*"] at the start of each turn. /// [JsonPropertyName("location")] public EIPLocationDTO? Location { get; set; } } }