BotSharp/src/Plugins/BotSharp.Plugin.MongoStorage/Models/DialogMongoElement.cs
iceljc 29c8b023b5
Merge pull request #884 from zfchai/style-MongoDbContext
Code style adjustment and partial optimization
2025-02-19 10:26:23 -06:00

83 lines
2.7 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 object? Data { 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,
Data = dialog.Data
};
}
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,
Data = dialog.Data
};
}
}
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? FunctionName { get; set; }
public string? SenderId { get; set; }
public DateTime CreatedTime { get; set; }
public static DialogMetaData ToDomainElement(DialogMetaDataMongoElement meta)
{
return new DialogMetaData
{
Role = meta.Role,
AgentId = meta.AgentId,
MessageId = meta.MessageId,
MessageType = meta.MessageType,
FunctionName = meta.FunctionName,
SenderId = meta.SenderId,
CreatedTime = meta.CreatedTime,
};
}
public static DialogMetaDataMongoElement ToMongoElement(DialogMetaData meta)
{
return new DialogMetaDataMongoElement
{
Role = meta.Role,
AgentId = meta.AgentId,
MessageId = meta.MessageId,
MessageType = meta.MessageType,
FunctionName = meta.FunctionName,
SenderId = meta.SenderId,
CreatedTime = meta.CreatedTime,
};
}
}