using NetAdmin.Domain.Dto.Sys.Api;
using NetAdmin.Domain.Dto.Sys.RequestLogDetail;
using NetAdmin.Domain.Dto.Sys.User;
using HttpMethods = NetAdmin.Domain.Enums.HttpMethods;
namespace NetAdmin.Domain.Dto.Sys.RequestLog;
///
/// 响应:导出请求日志
///
public sealed record ExportRequestLogRsp : QueryRequestLogRsp
{
///
/// 接口路径
///
[CsvIndex(2)]
[JsonInclude]
[CsvName(nameof(Ln.接口路径))]
public string ApiId => Api.Id;
///
[CsvIndex(6)]
[CsvIgnore(false)]
[CsvName(nameof(Ln.客户端IP))]
public override string CreatedClientIp => base.CreatedClientIp;
///
/// 用户名
///
[CsvIndex(5)]
[JsonInclude]
[CsvName(nameof(Ln.用户名))]
public string UserName => Owner?.UserName;
///
[CsvIgnore]
public override QueryApiRsp Api { get; init; }
///
[CsvIgnore(false)]
[CsvIndex(8)]
[CsvName(nameof(Ln.创建时间))]
public override DateTime CreatedTime { get; init; }
///
[CsvIgnore]
public override QueryRequestLogDetailRsp Detail { get; init; }
///
[CsvIndex(4)]
[CsvIgnore(false)]
[CsvName(nameof(Ln.执行耗时))]
public override int Duration { get; init; }
///
[CsvIndex(3)]
[CsvIgnore(false)]
[CsvName(nameof(Ln.请求方式))]
public override HttpMethods HttpMethod { get; init; }
///
[CsvIndex(1)]
[CsvIgnore(false)]
[CsvName(nameof(Ln.响应状态码))]
public override int HttpStatusCode { get; init; }
///
[CsvIndex(0)]
[CsvIgnore(false)]
[CsvName(nameof(Ln.唯一编码))]
public override long Id { get; init; }
///
[CsvIgnore]
public override QueryUserRsp Owner { get; init; }
///
[CsvIndex(7)]
[CsvIgnore(false)]
[CsvName(nameof(Ln.跟踪标识))]
public override Guid TraceId { get; init; }
}