/**
* 文件：ParamEntity.java
* 版本：1.0.0
* 日期：
* Copyright &reg; 
* All right reserved.
*/

package com.mortals.xhx.base.system.param.model;

import com.mortals.framework.model.BaseEntityLong;
import com.mortals.framework.service.IParam;

import java.util.Date;

/**
 * <p>Title: 参数信息</p>
 * <p>Description: ParamEntity  </p>
 * <p>Copyright: Copyright &reg;  </p>
 * <p>Company: </p>
 * @author 
 * @version 1.0.0
 */
public class ParamEntity extends ParamEntityExt implements IParam {
	private static final long serialVersionUID = 1536307966363L;
	
	/** 参数名称 */
	private String name;

	/** 一级组织，如：平台配置 */
	private String firstOrganize;

	/** 二级组织，如：基础配置 */
	private String secondOrganize;

	/** 参数键，全局唯一 */
	private String paramKey;

	/** 参数值 */
	private String paramValue;

	/** 参数有效状态，0：禁用，1：启用，默认1 */
	private Integer validStatus;

	/** 参数修改状态，0：隐藏，1：页面仅查看，2：页面可修改，3：页面可删除，4：页面可修改删除，默认4 */
	private Integer modStatus;

	/** 展现类型，0：普通文本框，1：多行文本框，2：开关，3：块输入框，4：密码输入框，默认：0 */
	private Integer displayType;

	/** 备注 */
	private String remark;

	/** 创建时间 */
	private Date createTime;

	/** 创建用户ID */
	private Long createUserId;

	/** 创建用户名称 */
	private String createUserName;


	public ParamEntity(){
		
	}
	/**
	 * 获取 参数名称
	 * @return name
	 */
	public String getName(){
		return this.name;
	}

	/**
	 * 设置 参数名称
	 * @param name
	 */
	public void setName(String name){
		this.name = name;
	}

	/**
	 * 获取 一级组织，如：平台配置
	 * @return firstOrganize
	 */
	public String getFirstOrganize(){
		return this.firstOrganize;
	}

	/**
	 * 设置 一级组织，如：平台配置
	 * @param firstOrganize
	 */
	public void setFirstOrganize(String firstOrganize){
		this.firstOrganize = firstOrganize;
	}

	/**
	 * 获取 二级组织，如：基础配置
	 * @return secondOrganize
	 */
	public String getSecondOrganize(){
		return this.secondOrganize;
	}

	/**
	 * 设置 二级组织，如：基础配置
	 * @param secondOrganize
	 */
	public void setSecondOrganize(String secondOrganize){
		this.secondOrganize = secondOrganize;
	}

	/**
	 * 获取 参数键，全局唯一
	 * @return paramKey
	 */
	public String getParamKey(){
		return this.paramKey;
	}

	/**
	 * 设置 参数键，全局唯一
	 * @param paramKey
	 */
	public void setParamKey(String paramKey){
		this.paramKey = paramKey;
	}

	/**
	 * 获取 参数值
	 * @return paramValue
	 */
	public String getParamValue(){
		return this.paramValue;
	}

	/**
	 * 设置 参数值
	 * @param paramValue
	 */
	public void setParamValue(String paramValue){
		this.paramValue = paramValue;
	}

	/**
	 * 获取 参数有效状态，0：禁用，1：启用，默认1
	 * @return validStatus
	 */
	public Integer getValidStatus(){
		return this.validStatus;
	}

	/**
	 * 设置 参数有效状态，0：禁用，1：启用，默认1
	 * @param validStatus
	 */
	public void setValidStatus(Integer validStatus){
		this.validStatus = validStatus;
	}

	/**
	 * 获取 参数修改状态，0：隐藏，1：页面仅查看，2：页面可修改，3：页面可删除，4：页面可修改删除，默认4
	 * @return modStatus
	 */
	public Integer getModStatus(){
		return this.modStatus;
	}

	/**
	 * 设置 参数修改状态，0：隐藏，1：页面仅查看，2：页面可修改，3：页面可删除，4：页面可修改删除，默认4
	 * @param modStatus
	 */
	public void setModStatus(Integer modStatus){
		this.modStatus = modStatus;
	}

	/**
	 * 获取 展现类型，0：普通文本框，1：多行文本框，2：开关，3：块输入框，4：密码输入框，默认：0
	 * @return displayType
	 */
	public Integer getDisplayType(){
		return this.displayType;
	}

	/**
	 * 设置 展现类型，0：普通文本框，1：多行文本框，2：开关，3：块输入框，4：密码输入框，默认：0
	 * @param displayType
	 */
	public void setDisplayType(Integer displayType){
		this.displayType = displayType;
	}

	/**
	 * 获取 备注
	 * @return remark
	 */
	public String getRemark(){
		return this.remark;
	}

	/**
	 * 设置 备注
	 * @param remark
	 */
	public void setRemark(String remark){
		this.remark = remark;
	}

	/**
	 * 获取 创建时间
	 * @return createTime
	 */
	public Date getCreateTime(){
		return this.createTime;
	}

	/**
	 * 设置 创建时间
	 * @param createTime
	 */
	public void setCreateTime(Date createTime){
		this.createTime = createTime;
	}

	/**
	 * 获取 创建用户ID
	 * @return createUserId
	 */
	public Long getCreateUserId(){
		return this.createUserId;
	}

	/**
	 * 设置 创建用户ID
	 * @param createUserId
	 */
	public void setCreateUserId(Long createUserId){
		this.createUserId = createUserId;
	}

	/**
	 * 获取 创建用户名称
	 * @return createUserName
	 */
	public String getCreateUserName(){
		return this.createUserName;
	}

	/**
	 * 设置 创建用户名称
	 * @param createUserName
	 */
	public void setCreateUserName(String createUserName){
		this.createUserName = createUserName;
	}


	@Override
	public int hashCode() {
		return this.getId().hashCode();
	}
	@Override
	public boolean equals(Object obj) {
		if (obj == null)
			return false;
		if (obj instanceof ParamEntity) {
			ParamEntity tmp = (ParamEntity) obj;
			if (this.getId().longValue() == tmp.getId().longValue()) {
				return true;
			}
		}
		return false;
	}
	public String toString(){
		StringBuilder sb = new StringBuilder("");
		sb.append("id:").append(getId())
		  .append(",name:").append(getName())
		  .append(",firstOrganize:").append(getFirstOrganize())
		  .append(",secondOrganize:").append(getSecondOrganize())
		  .append(",paramKey:").append(getParamKey())
		  .append(",paramValue:").append(getParamValue())
		  .append(",validStatus:").append(getValidStatus())
		  .append(",modStatus:").append(getModStatus())
		  .append(",displayType:").append(getDisplayType())
		  .append(",remark:").append(getRemark())
		  .append(",createTime:").append(getCreateTime())
		  .append(",createUserId:").append(getCreateUserId())
		  .append(",createUserName:").append(getCreateUserName());
		return sb.toString();
	}
	public void initAttrValue(){
		this.name = null;
		this.firstOrganize = null;
		this.secondOrganize = null;
		this.paramKey = null;
		this.paramValue = null;
		this.validStatus = 1;
		this.modStatus = 4;
		this.displayType = 0;
		this.remark = null;
		this.createTime = null;
		this.createUserId = null;
		this.createUserName = null;
	}
}