package com.mortals.xhx.common.pdu.biz;
import java.util.Date;
import java.util.List;
import com.mortals.framework.model.BaseEntityLong;

/**
* 业务日志Pdu对象
*
* @author zxfei
* @date 2022-08-17
*/

public class BizLogPdu extends BaseEntityLong {
    private static final long serialVersionUID = 1L;

    /**
    * 追踪Id
    */
    private String traceID;
    /**
    * 应用名称
    */
    private String appName;
    /**
    * 实例IP
    */
    private String hostName;
    /**
    * 日志等级
    */
    private String logLevel;
    /**
    * 用户唯一标识
    */
    private String userCode;
    /**
    * 设备唯一标识
    */
    private String deviceCode;
    /**
    * 记录埋点的事件主题，方便实时计算或同步进行数据筛选
    */
    private String eventTopic;
    /**
    * 记录埋点中文名称
    */
    private String eventTopicName;
    /**
    * 事件参数，json
    */
    private String msg;
    /**
    * 日志产生时间
    */
    private Date logTime;

    /** 开始 主键ID，主键，自增长 */
    private Long idStart;

    /** 结束 主键ID，主键，自增长 */
    private Long idEnd;

    /** 增加 主键ID，主键，自增长 */
    private Long idIncrement;

    /** 主键ID，主键，自增长列表 */
    private List <Long> idList;

    /** 追踪Id */
    private List<String> traceIDList;

    /** 应用名称 */
    private List<String> appNameList;

    /** 实例IP */
    private List<String> hostNameList;

    /** 日志等级 */
    private List<String> logLevelList;

    /** 用户唯一标识 */
    private List<String> userCodeList;

    /** 设备唯一标识 */
    private List<String> deviceCodeList;

    /** 记录埋点的事件主题，方便实时计算或同步进行数据筛选 */
    private List<String> eventTopicList;

    /** 记录埋点中文名称 */
    private List<String> eventTopicNameList;

    /** 事件参数，json */
    private List<String> msgList;

    /** 开始 日志产生时间 */
    private String logTimeStart;

    /** 结束 日志产生时间 */
    private String logTimeEnd;

    /** 开始 创建用户 */
    private Long createUserIdStart;

    /** 结束 创建用户 */
    private Long createUserIdEnd;

    /** 增加 创建用户 */
    private Long createUserIdIncrement;

    /** 创建用户列表 */
    private List <Long> createUserIdList;

    /** 开始 创建时间 */
    private String createTimeStart;

    /** 结束 创建时间 */
    private String createTimeEnd;


    /** OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
    private List<BizLogPdu> orConditionList;

    /** AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
    private List<BizLogPdu> andConditionList;

    public BizLogPdu(){}
    /**
    * 获取 追踪Id
    * @return String
    */
    public String getTraceID(){
        return traceID;
    }
    /**
    * 设置 追踪Id
    * @param traceID
    */
    public void setTraceID(String traceID){
        this.traceID = traceID;
    }
    /**
    * 获取 应用名称
    * @return String
    */
    public String getAppName(){
        return appName;
    }
    /**
    * 设置 应用名称
    * @param appName
    */
    public void setAppName(String appName){
        this.appName = appName;
    }
    /**
    * 获取 实例IP
    * @return String
    */
    public String getHostName(){
        return hostName;
    }
    /**
    * 设置 实例IP
    * @param hostName
    */
    public void setHostName(String hostName){
        this.hostName = hostName;
    }
    /**
    * 获取 日志等级
    * @return String
    */
    public String getLogLevel(){
        return logLevel;
    }
    /**
    * 设置 日志等级
    * @param logLevel
    */
    public void setLogLevel(String logLevel){
        this.logLevel = logLevel;
    }
    /**
    * 获取 用户唯一标识
    * @return String
    */
    public String getUserCode(){
        return userCode;
    }
    /**
    * 设置 用户唯一标识
    * @param userCode
    */
    public void setUserCode(String userCode){
        this.userCode = userCode;
    }
    /**
    * 获取 设备唯一标识
    * @return String
    */
    public String getDeviceCode(){
        return deviceCode;
    }
    /**
    * 设置 设备唯一标识
    * @param deviceCode
    */
    public void setDeviceCode(String deviceCode){
        this.deviceCode = deviceCode;
    }
    /**
    * 获取 记录埋点的事件主题，方便实时计算或同步进行数据筛选
    * @return String
    */
    public String getEventTopic(){
        return eventTopic;
    }
    /**
    * 设置 记录埋点的事件主题，方便实时计算或同步进行数据筛选
    * @param eventTopic
    */
    public void setEventTopic(String eventTopic){
        this.eventTopic = eventTopic;
    }
    /**
    * 获取 记录埋点中文名称
    * @return String
    */
    public String getEventTopicName(){
        return eventTopicName;
    }
    /**
    * 设置 记录埋点中文名称
    * @param eventTopicName
    */
    public void setEventTopicName(String eventTopicName){
        this.eventTopicName = eventTopicName;
    }
    /**
    * 获取 事件参数，json
    * @return String
    */
    public String getMsg(){
        return msg;
    }
    /**
    * 设置 事件参数，json
    * @param msg
    */
    public void setMsg(String msg){
        this.msg = msg;
    }
    /**
    * 获取 日志产生时间
    * @return Date
    */
    public Date getLogTime(){
        return logTime;
    }
    /**
    * 设置 日志产生时间
    * @param logTime
    */
    public void setLogTime(Date logTime){
        this.logTime = logTime;
    }

    /**
    * 获取 开始 主键ID，主键，自增长
    * @return idStart
    */
    public Long getIdStart(){
        return this.idStart;
    }

    /**
    * 设置 开始 主键ID，主键，自增长
    * @param idStart
    */
    public void setIdStart(Long idStart){
        this.idStart = idStart;
    }

    /**
    * 获取 结束 主键ID，主键，自增长
    * @return $idEnd
    */
    public Long getIdEnd(){
        return this.idEnd;
    }

    /**
    * 设置 结束 主键ID，主键，自增长
    * @param idEnd
    */
    public void setIdEnd(Long idEnd){
        this.idEnd = idEnd;
    }

    /**
    * 获取 增加 主键ID，主键，自增长
    * @return idIncrement
    */
    public Long getIdIncrement(){
        return this.idIncrement;
    }

    /**
    * 设置 增加 主键ID，主键，自增长
    * @param idIncrement
    */
    public void setIdIncrement(Long idIncrement){
        this.idIncrement = idIncrement;
    }

    /**
    * 获取 主键ID，主键，自增长
    * @return idList
    */
    public List<Long> getIdList(){
        return this.idList;
    }

    /**
    * 设置 主键ID，主键，自增长
    * @param idList
    */
    public void setIdList(List<Long> idList){
        this.idList = idList;
    }

    /**
    * 获取 追踪Id
    * @return traceIDList
    */
    public List<String> getTraceIDList(){
        return this.traceIDList;
    }

    /**
    * 设置 追踪Id
    * @param traceIDList
    */
    public void setTraceIDList(List<String> traceIDList){
        this.traceIDList = traceIDList;
    }
    /**
    * 获取 应用名称
    * @return appNameList
    */
    public List<String> getAppNameList(){
        return this.appNameList;
    }

    /**
    * 设置 应用名称
    * @param appNameList
    */
    public void setAppNameList(List<String> appNameList){
        this.appNameList = appNameList;
    }
    /**
    * 获取 实例IP
    * @return hostNameList
    */
    public List<String> getHostNameList(){
        return this.hostNameList;
    }

    /**
    * 设置 实例IP
    * @param hostNameList
    */
    public void setHostNameList(List<String> hostNameList){
        this.hostNameList = hostNameList;
    }
    /**
    * 获取 日志等级
    * @return logLevelList
    */
    public List<String> getLogLevelList(){
        return this.logLevelList;
    }

    /**
    * 设置 日志等级
    * @param logLevelList
    */
    public void setLogLevelList(List<String> logLevelList){
        this.logLevelList = logLevelList;
    }
    /**
    * 获取 用户唯一标识
    * @return userCodeList
    */
    public List<String> getUserCodeList(){
        return this.userCodeList;
    }

    /**
    * 设置 用户唯一标识
    * @param userCodeList
    */
    public void setUserCodeList(List<String> userCodeList){
        this.userCodeList = userCodeList;
    }
    /**
    * 获取 设备唯一标识
    * @return deviceCodeList
    */
    public List<String> getDeviceCodeList(){
        return this.deviceCodeList;
    }

    /**
    * 设置 设备唯一标识
    * @param deviceCodeList
    */
    public void setDeviceCodeList(List<String> deviceCodeList){
        this.deviceCodeList = deviceCodeList;
    }
    /**
    * 获取 记录埋点的事件主题，方便实时计算或同步进行数据筛选
    * @return eventTopicList
    */
    public List<String> getEventTopicList(){
        return this.eventTopicList;
    }

    /**
    * 设置 记录埋点的事件主题，方便实时计算或同步进行数据筛选
    * @param eventTopicList
    */
    public void setEventTopicList(List<String> eventTopicList){
        this.eventTopicList = eventTopicList;
    }
    /**
    * 获取 记录埋点中文名称
    * @return eventTopicNameList
    */
    public List<String> getEventTopicNameList(){
        return this.eventTopicNameList;
    }

    /**
    * 设置 记录埋点中文名称
    * @param eventTopicNameList
    */
    public void setEventTopicNameList(List<String> eventTopicNameList){
        this.eventTopicNameList = eventTopicNameList;
    }
    /**
    * 获取 事件参数，json
    * @return msgList
    */
    public List<String> getMsgList(){
        return this.msgList;
    }

    /**
    * 设置 事件参数，json
    * @param msgList
    */
    public void setMsgList(List<String> msgList){
        this.msgList = msgList;
    }
    /**
    * 获取 开始 日志产生时间
    * @return logTimeStart
    */
    public String getLogTimeStart(){
        return this.logTimeStart;
    }

    /**
    * 设置 开始 日志产生时间
    * @param logTimeStart
    */
    public void setLogTimeStart(String logTimeStart){
        this.logTimeStart = logTimeStart;
    }

    /**
    * 获取 结束 日志产生时间
    * @return logTimeEnd
    */
    public String getLogTimeEnd(){
        return this.logTimeEnd;
    }

    /**
    * 设置 结束 日志产生时间
    * @param logTimeEnd
    */
    public void setLogTimeEnd(String logTimeEnd){
        this.logTimeEnd = logTimeEnd;
    }

    /**
    * 获取 开始 创建用户
    * @return createUserIdStart
    */
    public Long getCreateUserIdStart(){
        return this.createUserIdStart;
    }

    /**
    * 设置 开始 创建用户
    * @param createUserIdStart
    */
    public void setCreateUserIdStart(Long createUserIdStart){
        this.createUserIdStart = createUserIdStart;
    }

    /**
    * 获取 结束 创建用户
    * @return $createUserIdEnd
    */
    public Long getCreateUserIdEnd(){
        return this.createUserIdEnd;
    }

    /**
    * 设置 结束 创建用户
    * @param createUserIdEnd
    */
    public void setCreateUserIdEnd(Long createUserIdEnd){
        this.createUserIdEnd = createUserIdEnd;
    }

    /**
    * 获取 增加 创建用户
    * @return createUserIdIncrement
    */
    public Long getCreateUserIdIncrement(){
        return this.createUserIdIncrement;
    }

    /**
    * 设置 增加 创建用户
    * @param createUserIdIncrement
    */
    public void setCreateUserIdIncrement(Long createUserIdIncrement){
        this.createUserIdIncrement = createUserIdIncrement;
    }

    /**
    * 获取 创建用户
    * @return createUserIdList
    */
    public List<Long> getCreateUserIdList(){
        return this.createUserIdList;
    }

    /**
    * 设置 创建用户
    * @param createUserIdList
    */
    public void setCreateUserIdList(List<Long> createUserIdList){
        this.createUserIdList = createUserIdList;
    }

    /**
    * 获取 开始 创建时间
    * @return createTimeStart
    */
    public String getCreateTimeStart(){
        return this.createTimeStart;
    }

    /**
    * 设置 开始 创建时间
    * @param createTimeStart
    */
    public void setCreateTimeStart(String createTimeStart){
        this.createTimeStart = createTimeStart;
    }

    /**
    * 获取 结束 创建时间
    * @return createTimeEnd
    */
    public String getCreateTimeEnd(){
        return this.createTimeEnd;
    }

    /**
    * 设置 结束 创建时间
    * @param createTimeEnd
    */
    public void setCreateTimeEnd(String createTimeEnd){
        this.createTimeEnd = createTimeEnd;
    }

    /**
    * 设置  主键ID，主键，自增长
    * @param id
    */
    public BizLogPdu id(Long id){
	    setId(id);
		return this;
    }

	 /**
    * 设置 开始 主键ID，主键，自增长
    * @param idStart
    */
    public BizLogPdu idStart(Long idStart){
		this.idStart = idStart;
		return this;
    }

    /**
    * 设置 结束 主键ID，主键，自增长
    * @param idEnd
    */
    public BizLogPdu idEnd(Long idEnd){
		this.idEnd = idEnd;
		return this;
    }

    /**
    * 设置 增加 主键ID，主键，自增长
    * @param idIncrement
    */
    public BizLogPdu idIncrement(Long idIncrement){
		this.idIncrement = idIncrement;
		return this;
    }

    /**
    * 设置 主键ID，主键，自增长
    * @param idList
    */
    public BizLogPdu idList(List<Long> idList){
        this.idList = idList;
		return this;
        }


	/**
    * 设置 追踪Id
    * @param traceID
    */
    public BizLogPdu traceID(String traceID){
        setTraceID(traceID);
		return this;
    }

    /**
    * 设置 追踪Id
    * @param traceIDList
    */
    public BizLogPdu traceIDList(List<String> traceIDList){
        this.traceIDList = traceIDList;
		return this;
    }


	/**
    * 设置 应用名称
    * @param appName
    */
    public BizLogPdu appName(String appName){
        setAppName(appName);
		return this;
    }

    /**
    * 设置 应用名称
    * @param appNameList
    */
    public BizLogPdu appNameList(List<String> appNameList){
        this.appNameList = appNameList;
		return this;
    }


	/**
    * 设置 实例IP
    * @param hostName
    */
    public BizLogPdu hostName(String hostName){
        setHostName(hostName);
		return this;
    }

    /**
    * 设置 实例IP
    * @param hostNameList
    */
    public BizLogPdu hostNameList(List<String> hostNameList){
        this.hostNameList = hostNameList;
		return this;
    }


	/**
    * 设置 日志等级
    * @param logLevel
    */
    public BizLogPdu logLevel(String logLevel){
        setLogLevel(logLevel);
		return this;
    }

    /**
    * 设置 日志等级
    * @param logLevelList
    */
    public BizLogPdu logLevelList(List<String> logLevelList){
        this.logLevelList = logLevelList;
		return this;
    }


	/**
    * 设置 用户唯一标识
    * @param userCode
    */
    public BizLogPdu userCode(String userCode){
        setUserCode(userCode);
		return this;
    }

    /**
    * 设置 用户唯一标识
    * @param userCodeList
    */
    public BizLogPdu userCodeList(List<String> userCodeList){
        this.userCodeList = userCodeList;
		return this;
    }


	/**
    * 设置 设备唯一标识
    * @param deviceCode
    */
    public BizLogPdu deviceCode(String deviceCode){
        setDeviceCode(deviceCode);
		return this;
    }

    /**
    * 设置 设备唯一标识
    * @param deviceCodeList
    */
    public BizLogPdu deviceCodeList(List<String> deviceCodeList){
        this.deviceCodeList = deviceCodeList;
		return this;
    }


	/**
    * 设置 记录埋点的事件主题，方便实时计算或同步进行数据筛选
    * @param eventTopic
    */
    public BizLogPdu eventTopic(String eventTopic){
        setEventTopic(eventTopic);
		return this;
    }

    /**
    * 设置 记录埋点的事件主题，方便实时计算或同步进行数据筛选
    * @param eventTopicList
    */
    public BizLogPdu eventTopicList(List<String> eventTopicList){
        this.eventTopicList = eventTopicList;
		return this;
    }


	/**
    * 设置 记录埋点中文名称
    * @param eventTopicName
    */
    public BizLogPdu eventTopicName(String eventTopicName){
        setEventTopicName(eventTopicName);
		return this;
    }

    /**
    * 设置 记录埋点中文名称
    * @param eventTopicNameList
    */
    public BizLogPdu eventTopicNameList(List<String> eventTopicNameList){
        this.eventTopicNameList = eventTopicNameList;
		return this;
    }


	/**
    * 设置 事件参数，json
    * @param msg
    */
    public BizLogPdu msg(String msg){
        setMsg(msg);
		return this;
    }

    /**
    * 设置 事件参数，json
    * @param msgList
    */
    public BizLogPdu msgList(List<String> msgList){
        this.msgList = msgList;
		return this;
    }


    /**
    * 设置  创建用户
    * @param createUserId
    */
    public BizLogPdu createUserId(Long createUserId){
	    setCreateUserId(createUserId);
		return this;
    }

	 /**
    * 设置 开始 创建用户
    * @param createUserIdStart
    */
    public BizLogPdu createUserIdStart(Long createUserIdStart){
		this.createUserIdStart = createUserIdStart;
		return this;
    }

    /**
    * 设置 结束 创建用户
    * @param createUserIdEnd
    */
    public BizLogPdu createUserIdEnd(Long createUserIdEnd){
		this.createUserIdEnd = createUserIdEnd;
		return this;
    }

    /**
    * 设置 增加 创建用户
    * @param createUserIdIncrement
    */
    public BizLogPdu createUserIdIncrement(Long createUserIdIncrement){
		this.createUserIdIncrement = createUserIdIncrement;
		return this;
    }

    /**
    * 设置 创建用户
    * @param createUserIdList
    */
    public BizLogPdu createUserIdList(List<Long> createUserIdList){
        this.createUserIdList = createUserIdList;
		return this;
        }



/**
    * 获取 OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
    * @return orConditionList
    */
    public List<BizLogPdu> getOrConditionList(){
    return this.orConditionList;
    }

    /**
    * 设置 OR条件集合，列表项之间是OR，项内容之间是AND，如：(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
    * @param orConditionList
    */
    public void setOrConditionList(List<BizLogPdu> orConditionList){
        this.orConditionList = orConditionList;
    }

    /**
    * 获取 AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
    * @return andConditionList
    */
    public List<BizLogPdu> getAndConditionList(){
        return this.andConditionList;
    }

    /**
    * 设置 AND条件集合，列表项之间是AND，项内容之间是OR，如：(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
    * @param andConditionList
    */
    public void setAndConditionList(List<BizLogPdu> andConditionList){
        this.andConditionList = andConditionList;
    }

    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof BizLogPdu) {
            BizLogPdu tmp = (BizLogPdu) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public void initAttrValue(){

            this.traceID = "";

            this.appName = "";

            this.hostName = "";

            this.logLevel = "";

            this.userCode = "";

            this.deviceCode = "";

            this.eventTopic = "";

            this.eventTopicName = "";

            this.msg = "";

            this.logTime = null;
    }
}