using BotSharp.Abstraction.Functions.Models; using BotSharp.Abstraction.Instructs.Models; using BotSharp.Abstraction.Messaging; using BotSharp.Abstraction.Messaging.Models.RichContent; using BotSharp.Abstraction.Users.Dtos; namespace BotSharp.Abstraction.Conversations.Dtos; public class ChatResponseDto : InstructResult { [JsonPropertyName("conversation_id")] public string ConversationId { get; set; } = string.Empty; public UserDto Sender { get; set; } = new UserDto(); public string? Function { get; set; } /// /// Planner instruction /// [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public FunctionCallFromLlm? Instruction { get; set; } /// /// Rich message for UI rendering /// [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("rich_content")] public RichContent? RichContent { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("payload")] public string? Payload { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonPropertyName("indication")] public string? Indication { get; set; } [JsonPropertyName("has_message_files")] public bool HasMessageFiles { get; set; } [JsonPropertyName("is_streaming")] public bool IsStreaming { get; set; } [JsonPropertyName("is_append")] public bool IsAppend { get; set; } [JsonPropertyName("created_at")] public DateTime CreatedAt { get; set; } = DateTime.UtcNow; }