BotSharp/src/Plugins/BotSharp.Plugin.MongoStorage/Models/DialogMongoElement.cs

90 lines
3.1 KiB
C#
Raw Normal View History

2023-11-22 00:16:45 +00:00
using BotSharp.Abstraction.Conversations.Models;
namespace BotSharp.Plugin.MongoStorage.Models;
2025-02-08 21:49:26 +00:00
[BsonIgnoreExtraElements(Inherited = true)]
2023-11-22 00:16:45 +00:00
public class DialogMongoElement
{
public DialogMetaDataMongoElement MetaData { get; set; } = new();
public string Content { get; set; } = default!;
2024-04-18 21:34:18 +00:00
public string? SecondaryContent { get; set; }
2024-02-22 16:02:11 +00:00
public string? RichContent { get; set; }
2024-04-18 21:34:18 +00:00
public string? SecondaryRichContent { get; set; }
2024-05-07 16:55:44 +00:00
public string? Payload { get; set; }
2023-11-22 00:16:45 +00:00
public static DialogMongoElement ToMongoElement(DialogElement dialog)
{
return new DialogMongoElement
{
2024-02-22 16:02:11 +00:00
MetaData = DialogMetaDataMongoElement.ToMongoElement(dialog.MetaData),
Content = dialog.Content,
2024-04-18 21:34:18 +00:00
SecondaryContent = dialog.SecondaryContent,
RichContent = dialog.RichContent,
2024-05-07 16:55:44 +00:00
SecondaryRichContent = dialog.SecondaryRichContent,
2025-02-28 22:47:03 +00:00
Payload = dialog.Payload
2023-11-22 00:16:45 +00:00
};
}
public static DialogElement ToDomainElement(DialogMongoElement dialog)
{
return new DialogElement
{
2024-02-22 16:02:11 +00:00
MetaData = DialogMetaDataMongoElement.ToDomainElement(dialog.MetaData),
Content = dialog.Content,
2024-04-18 21:34:18 +00:00
SecondaryContent = dialog.SecondaryContent,
RichContent = dialog.RichContent,
2024-05-07 16:55:44 +00:00
SecondaryRichContent = dialog.SecondaryRichContent,
2025-02-28 22:47:03 +00:00
Payload = dialog.Payload
2023-11-22 00:16:45 +00:00
};
}
}
2023-12-28 18:27:09 +00:00
2025-02-19 18:20:35 +00:00
[BsonIgnoreExtraElements(Inherited = true)]
2024-02-22 16:02:11 +00:00
public class DialogMetaDataMongoElement
2023-12-28 18:27:09 +00:00
{
public string Role { get; set; } = default!;
public string AgentId { get; set; } = default!;
public string MessageId { get; set; } = default!;
public string MessageType { get; set; } = default!;
2025-09-08 19:29:08 +00:00
public string? MessageLabel { get; set; }
2023-12-28 18:27:09 +00:00
public string? FunctionName { get; set; }
2025-05-15 20:46:42 +00:00
public string? FunctionArgs { get; set; }
public string? ToolCallId { get; set; }
2023-12-28 18:27:09 +00:00
public string? SenderId { get; set; }
2025-02-19 18:20:35 +00:00
public DateTime CreateTime { get; set; }
2023-12-28 18:27:09 +00:00
2024-02-22 16:02:11 +00:00
public static DialogMetaData ToDomainElement(DialogMetaDataMongoElement meta)
2023-12-28 18:27:09 +00:00
{
2024-02-22 16:02:11 +00:00
return new DialogMetaData
2023-12-28 18:27:09 +00:00
{
Role = meta.Role,
AgentId = meta.AgentId,
MessageId = meta.MessageId,
2024-10-07 21:35:39 +00:00
MessageType = meta.MessageType,
2025-09-08 19:29:08 +00:00
MessageLabel = meta.MessageLabel,
2023-12-28 18:27:09 +00:00
FunctionName = meta.FunctionName,
2025-05-15 20:46:42 +00:00
FunctionArgs = meta.FunctionArgs,
ToolCallId = meta.ToolCallId,
2023-12-28 18:27:09 +00:00
SenderId = meta.SenderId,
2025-02-19 18:20:35 +00:00
CreatedTime = meta.CreateTime,
2023-12-28 18:27:09 +00:00
};
}
2024-02-22 16:02:11 +00:00
public static DialogMetaDataMongoElement ToMongoElement(DialogMetaData meta)
2023-12-28 18:27:09 +00:00
{
2024-02-22 16:02:11 +00:00
return new DialogMetaDataMongoElement
2023-12-28 18:27:09 +00:00
{
Role = meta.Role,
AgentId = meta.AgentId,
MessageId = meta.MessageId,
2024-10-07 21:35:39 +00:00
MessageType = meta.MessageType,
2025-09-08 19:29:08 +00:00
MessageLabel = meta.MessageLabel,
2023-12-28 18:27:09 +00:00
FunctionName = meta.FunctionName,
2025-05-15 20:46:42 +00:00
FunctionArgs = meta.FunctionArgs,
ToolCallId = meta.ToolCallId,
2023-12-28 18:27:09 +00:00
SenderId = meta.SenderId,
2025-02-19 18:20:35 +00:00
CreateTime = meta.CreatedTime,
2023-12-28 18:27:09 +00:00
};
}
}