using NetAdmin.Domain.DbMaps.Dependency; using NetAdmin.Domain.DbMaps.Dependency.Fields; namespace NetAdmin.Domain.DbMaps.Sys; /// /// 请求日志表 /// [Index(Chars.FLG_DB_INDEX_PREFIX + nameof(ApiId), nameof(ApiId), false)] [Index(Chars.FLG_DB_INDEX_PREFIX + nameof(CreatedTime), nameof(CreatedTime), false)] [Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_RequestLog))] public record Sys_RequestLog : ImmutableEntity, IFieldCreatedClient { /// /// 接口 /// [JsonIgnore] [Navigate(nameof(ApiId))] public Sys_Api Api { get; init; } /// /// 接口编号 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_127)] [JsonIgnore] public virtual string ApiId { get; init; } /// /// 创建者客户端IP /// [Column(Position = -1)] [JsonIgnore] public int? CreatedClientIp { get; init; } /// /// 创建者来源地址 /// [Column(Position = -1, DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] [JsonIgnore] public string CreatedReferer { get; init; } /// /// 创建者客户端用户代理 /// #if DBTYPE_SQLSERVER [Column(Position = -1, DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_1022)] #else [Column(Position = -1, DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] #endif [JsonIgnore] public virtual string CreatedUserAgent { get; init; } /// /// 执行耗时(微秒) /// [Column] [JsonIgnore] public virtual long Duration { get; init; } /// /// 程序响应码 /// [Column] [JsonIgnore] public virtual ErrorCodes ErrorCode { get; init; } /// /// 异常信息 /// #if DBTYPE_SQLSERVER [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)] #else [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] #endif [JsonIgnore] public virtual string Exception { get; init; } /// /// 附加数据 /// #if DBTYPE_SQLSERVER [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)] #else [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] #endif [JsonIgnore] public virtual string ExtraData { get; init; } /// /// HTTP状态码 /// [Column] [JsonIgnore] public virtual int HttpStatusCode { get; init; } /// /// 请求方法 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_15)] [JsonIgnore] public virtual string Method { get; init; } /// /// 来源地址 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] [JsonIgnore] public virtual string ReferUrl { get; init; } /// /// 请求内容 /// #if DBTYPE_SQLSERVER [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)] #else [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] #endif [JsonIgnore] public virtual string RequestBody { get; init; } /// /// 请求content-type /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)] [JsonIgnore] public virtual string RequestContentType { get; init; } /// /// 请求头信息 /// #if DBTYPE_SQLSERVER [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)] #else [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] #endif [JsonIgnore] public virtual string RequestHeaders { get; init; } /// /// 请求地址 /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_127)] [JsonIgnore] public virtual string RequestUrl { get; init; } /// /// 响应内容 /// #if DBTYPE_SQLSERVER [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)] #else [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] #endif [JsonIgnore] public virtual string ResponseBody { get; init; } /// /// 响应content-type /// [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)] [JsonIgnore] public virtual string ResponseContentType { get; init; } /// /// 响应头 /// #if DBTYPE_SQLSERVER [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)] #else [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] #endif [JsonIgnore] public virtual string ResponseHeaders { get; init; } /// /// 服务器IP /// [Column] [JsonIgnore] public virtual int? ServerIp { get; init; } }