BotSharp/src/Plugins/BotSharp.Plugin.MongoStorage/Models/DialogMongoElement.cs
2025-09-08 14:29:08 -05:00

90 lines
3.1 KiB
C#

using BotSharp.Abstraction.Conversations.Models;
namespace BotSharp.Plugin.MongoStorage.Models;
[BsonIgnoreExtraElements(Inherited = true)]
public class DialogMongoElement
{
public DialogMetaDataMongoElement MetaData { get; set; } = new();
public string Content { get; set; } = default!;
public string? SecondaryContent { get; set; }
public string? RichContent { get; set; }
public string? SecondaryRichContent { get; set; }
public string? Payload { get; set; }
public static DialogMongoElement ToMongoElement(DialogElement dialog)
{
return new DialogMongoElement
{
MetaData = DialogMetaDataMongoElement.ToMongoElement(dialog.MetaData),
Content = dialog.Content,
SecondaryContent = dialog.SecondaryContent,
RichContent = dialog.RichContent,
SecondaryRichContent = dialog.SecondaryRichContent,
Payload = dialog.Payload
};
}
public static DialogElement ToDomainElement(DialogMongoElement dialog)
{
return new DialogElement
{
MetaData = DialogMetaDataMongoElement.ToDomainElement(dialog.MetaData),
Content = dialog.Content,
SecondaryContent = dialog.SecondaryContent,
RichContent = dialog.RichContent,
SecondaryRichContent = dialog.SecondaryRichContent,
Payload = dialog.Payload
};
}
}
[BsonIgnoreExtraElements(Inherited = true)]
public class DialogMetaDataMongoElement
{
public string Role { get; set; } = default!;
public string AgentId { get; set; } = default!;
public string MessageId { get; set; } = default!;
public string MessageType { get; set; } = default!;
public string? MessageLabel { get; set; }
public string? FunctionName { get; set; }
public string? FunctionArgs { get; set; }
public string? ToolCallId { get; set; }
public string? SenderId { get; set; }
public DateTime CreateTime { get; set; }
public static DialogMetaData ToDomainElement(DialogMetaDataMongoElement meta)
{
return new DialogMetaData
{
Role = meta.Role,
AgentId = meta.AgentId,
MessageId = meta.MessageId,
MessageType = meta.MessageType,
MessageLabel = meta.MessageLabel,
FunctionName = meta.FunctionName,
FunctionArgs = meta.FunctionArgs,
ToolCallId = meta.ToolCallId,
SenderId = meta.SenderId,
CreatedTime = meta.CreateTime,
};
}
public static DialogMetaDataMongoElement ToMongoElement(DialogMetaData meta)
{
return new DialogMetaDataMongoElement
{
Role = meta.Role,
AgentId = meta.AgentId,
MessageId = meta.MessageId,
MessageType = meta.MessageType,
MessageLabel = meta.MessageLabel,
FunctionName = meta.FunctionName,
FunctionArgs = meta.FunctionArgs,
ToolCallId = meta.ToolCallId,
SenderId = meta.SenderId,
CreateTime = meta.CreatedTime,
};
}
}