using OASystem.Domain.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Entities.Customer
{
    /// <summary>
    /// 表操作记录
    /// </summary>
    [SugarTable("Crm_TableOperationRecord")]
    public class Crm_TableOperationRecord : EntityBase
    {
        /// <summary>
        /// 表名
        /// "Crm_NewClientData" 客户资料表
        /// "Login" 登录
        /// "InforRetrogressTable"  会务倒退表
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string? TableName { get; set; }

        /// <summary>
        /// 1 Web 2 安卓 3 苹果
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int PortType { get; set; }

        /// <summary>
        /// 操作项目
        /// 0 未操作 1浏览列表 2 浏览详情 3 添加 4 修改 5 删除 6 审核 7 上传 8 下载 9 Login
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public OperationEnum OperationItem { get; set; } = OperationEnum.NoOperation;

        /// <summary>
        /// 数据Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int DataId { get; set; } = 0;

        /// <summary>
        /// 执行状态
        /// </summary>
        public string? Status { get; set; }

        /// <summary>
        /// IP地址
        /// </summary>
        public string? RemoteIp { get; set; }

        /// <summary>
        /// 登录地点
        /// </summary>
        public string? Location { get; set; }

        /// <summary>
        /// 设备类型
        /// </summary>
        public string DeviceType { get; set; }

        /// <summary>
        /// 浏览器
        /// </summary>
        public string? Browser { get; set; }

        /// <summary>
        /// 操作系统
        /// </summary>
        public string? Os { get; set; }

        /// <summary>
        /// 操作用时
        /// </summary>
        public long? Elapsed { get; set; }

        /// <summary>
        /// 请求地址
        /// </summary>
        public string? RequestUrl { get; set; }

        /// <summary>
        /// 请求参数
        /// </summary>
        public string? RequestParam { get; set; }

        /// <summary>
        /// 返回结果
        /// </summary>
        public string? ReturnResult { get; set; }

        /// <summary>
        /// 更新前数据
        /// </summary>
        public string UpdatePreData { get; set; }

        /// <summary>
        /// 更新后数据
        /// </summary>
        public string UpdateBefData { get; set; }
    }
}