using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WCS.BLL.DbModels
{
    /// <summary>
    /// 系统接口日志记录
    /// </summary>
    [SugarTable("wcs_system_api_log_record")]
    public class SystemApiLogRecord
    {
        /// <summary>
        /// 主键Id
        /// </summary>
        [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsNullable = false, IsIdentity = true)]
        public int Id { get; set; }

        [SugarColumn(ColumnName = "request_type", IsNullable = false, ColumnDescription = "调用/被调用 0 = 被调用,1 = 调用")]
        /// <summary>
        /// 调用/被调用 0 = 被调用 1 = 调用
        /// </summary>
        public string RequestType { get; set; } = "被调用";

        /// <summary>
        /// 用户名称
        /// </summary>
        [SugarColumn(ColumnName = "user_name", IsNullable = true, ColumnDescription = "用户名称")]
        public string UserName { get; set; }

        /// <summary>
        /// 设备类型
        /// </summary>
        [SugarColumn(ColumnName = "device_type", IsNullable = true, ColumnDescription = "用户名称")]
        public string DeviceType { get; set; }

        /// <summary>
        /// 设备Ip
        /// </summary>
        [SugarColumn(ColumnName = "device_ip", IsNullable = true, ColumnDescription = "设备Ip")]
        public string DeviceIp { get; set; }

        /// <summary>
        /// 请求地址
        /// </summary>
        [SugarColumn(ColumnName = "request_url", IsNullable = true, ColumnDescription = "请求地址")]
        public string RequestUrl { get; set; }

        /// <summary>
        /// 请求Body
        /// </summary>
        [SugarColumn(ColumnName = "request_body", IsNullable = true, ColumnDescription = "请求Body")]
        public string RequestBody { get; set; }

        /// <summary>
        /// 请求Body
        /// </summary>
        [SugarColumn(ColumnName = "query_string", IsNullable = true, ColumnDescription = "请求Body")]
        public string QueryString { get; set; }

        /// <summary>
        /// 是否响应
        /// </summary>
        [SugarColumn(ColumnName = "is_response", IsNullable = true, ColumnDescription = "是否响应")]
        public bool IsResponse { get; set; }

        /// <summary>
        /// 响应返回内容
        /// </summary>
        [SugarColumn(ColumnName = "response_json", IsNullable = true, ColumnDescription = "响应返回内容")]
        public string ResponseJson { get; set; }

        /// <summary>
        /// 开始请求时间
        /// </summary>
        [SugarColumn(ColumnName = "request_time", IsNullable = true, ColumnDescription = "开始请求时间")]
        public DateTime RequestTime { get; set; }

        /// <summary>
        /// 响应时间
        /// </summary>
        [SugarColumn(ColumnName = "response_time", IsNullable = true, ColumnDescription = "响应时间")]
        public DateTime ResponseTime { get; set; }

        /// <summary>
        /// 请求处理时长（ms）
        /// </summary>
        [SugarColumn(ColumnName = "execution_time", IsNullable = true, ColumnDescription = "请求处理时长（ms）")]
        public long ExecutionTime { get; set; }

        /// <summary>
        /// 序号
        /// </summary>
        [SugarColumn(IsIgnore = true)]
        public int RowNumber { get; set; }

    }
}

