You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.3 KiB

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
namespace CoreAgent.Domain.Models.Protocol;
/// <summary>
/// 协议日志实体类
/// </summary>
public record class ProtocolLog
{
/// <summary>
/// 消息ID
/// </summary>
[JsonProperty("message_id")]
public int? MessageId { get; set; }
/// <summary>
/// 消息头信息
/// </summary>
[JsonProperty("headers")]
public string[]? Headers { get; set; }
/// <summary>
/// 消息内容
/// </summary>
[JsonProperty("message")]
public string Message { get; set; }
/// <summary>
/// 消息类型
/// </summary>
[JsonProperty("type")]
public string? Type { get; set; }
/// <summary>
/// 消息名称
/// </summary>
[JsonProperty("name")]
public string? Name { get; set; }
/// <summary>
/// 协议版本
/// </summary>
[JsonProperty("version")]
public string? Version { get; set; }
/// <summary>
/// 时间戳
/// </summary>
[JsonProperty("time")]
public double? Time { get; set; }
/// <summary>
/// UTC时间戳
/// </summary>
[JsonProperty("utc")]
public double? Utc { get; set; }
/// <summary>
/// 日志明细
/// </summary>
[JsonProperty("logs")]
public JToken? Logs { get; set; }
/// <summary>
/// 初始化协议日志实体类的新实例
/// </summary>
/// <param name="message">消息内容</param>
/// <param name="type">消息类型</param>
/// <param name="version">协议版本</param>
/// <param name="time">时间戳</param>
/// <param name="utc">UTC时间戳</param>
/// <param name="logs">日志明细</param>
/// <param name="messageId">消息ID</param>
/// <param name="headers">消息头信息</param>
public ProtocolLog(
string message,
string? type,
string? version,
double? time,
double? utc,
JToken? logs,
int? messageId,
string[]? headers)
{
Message = message;
Type = type;
Version = version;
Name = type;
Utc = utc;
Time = time;
Logs = logs;
MessageId = messageId ?? 0;
Headers = headers;
}
}