package cn.hanghui.outapi.platform.tenant.entity.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * <p>
 * 操作日志记录
 * </p>
 *
 * @author wxg
 * @since 2024-12-31
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_oper_log")
public class SysOperLog implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 日志主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 所属模块
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.LogTagEnum
     */
    @TableField("tag")
    private String tag;

    /**
     * 业务类型BusinessTypeEnum枚举
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.BusinessTypeEnum
     */
    @TableField("business_type")
    private Integer businessType;

    /**
     * 操作名称
     */
    @TableField("title")
    private String title;

    /**
     * 方法名称
     */
    @TableField("method")
    private String method;

    /**
     * 操作人员
     */
    @TableField("oper_name")
    private String operName;

    /**
     * 操作人员手机号
     */
    @TableField("oper_phone")
    private String operPhone;

    /**
     * 请求参数
     */
    @TableField("oper_param")
    private String operParam;

    /**
     * 返回参数
     */
    @TableField("json_result")
    private String jsonResult;

    /**
     * 错误消息
     */
    @TableField("error_msg")
    private String errorMsg;

    /**
     * 操作状态（1正常 0异常）
     */
    @TableField("status")
    private Boolean status;

    /**
     * 操作时间
     */
    @TableField("oper_time")
    private Date operTime;

    /**
     * 执行时长(毫秒)
     */
    @TableField("execute_time")
    private Long executeTime;

    /**
     * 账号id
     */
    @TableField("account_id")
    private Long accountId;

    /**
     * 账号名称
     */
    @TableField("account_name")
    private String accountName;

}
