package com.ssm.manage.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

@Table(name = "sys_role")
public class SysRole implements Serializable {
    /**
     * 角色编码
     */
    @Id
    @Column(name = "role_id")
    private Long roleId;

    /**
     * 角色名称
     */
    @Column(name = "role_name")
    private String roleName;

    /**
     * 状态 1：正常；0：停用
     */
    private Integer state;

    /**
     * 建立人（用户名称（用户编码））
     */
    @Column(name = "Founder")
    private String founder;

    /**
     * 建立时间
     */
    @Column(name = "Founder_datetime")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date founderDatetime;

    /**
     * 最近修改人（用户名称（用户编码））
     */
    @Column(name = "modify_by")
    private String modifyBy;

    /**
     * 最近修改时间
     */
    @Column(name = "modify_datetime")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date modifyDatetime;

    /**
     * 所属行业:0:美容/1:美发/2:美容美发/3:高尔夫
     */
    private Integer industry;

    private static final long serialVersionUID = 1L;

    /**
     * 获取角色编码
     *
     * @return role_id - 角色编码
     */
    public Long getRoleId() {
        return roleId;
    }

    /**
     * 设置角色编码
     *
     * @param roleId 角色编码
     */
    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }

    /**
     * 获取角色名称
     *
     * @return role_name - 角色名称
     */
    public String getRoleName() {
        return roleName;
    }

    /**
     * 设置角色名称
     *
     * @param roleName 角色名称
     */
    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    /**
     * 获取状态 1：正常；0：停用
     *
     * @return state - 状态 1：正常；0：停用
     */
    public Integer getState() {
        return state;
    }

    /**
     * 设置状态 1：正常；0：停用
     *
     * @param state 状态 1：正常；0：停用
     */
    public void setState(Integer state) {
        this.state = state;
    }

    /**
     * 获取建立人（用户名称（用户编码））
     *
     * @return Founder - 建立人（用户名称（用户编码））
     */
    public String getFounder() {
        return founder;
    }

    /**
     * 设置建立人（用户名称（用户编码））
     *
     * @param founder 建立人（用户名称（用户编码））
     */
    public void setFounder(String founder) {
        this.founder = founder;
    }

    /**
     * 获取建立时间
     *
     * @return Founder_datetime - 建立时间
     */
    public Date getFounderDatetime() {
        return founderDatetime;
    }

    /**
     * 设置建立时间
     *
     * @param founderDatetime 建立时间
     */
    public void setFounderDatetime(Date founderDatetime) {
        this.founderDatetime = founderDatetime;
    }

    /**
     * 获取最近修改人（用户名称（用户编码））
     *
     * @return modify_by - 最近修改人（用户名称（用户编码））
     */
    public String getModifyBy() {
        return modifyBy;
    }

    /**
     * 设置最近修改人（用户名称（用户编码））
     *
     * @param modifyBy 最近修改人（用户名称（用户编码））
     */
    public void setModifyBy(String modifyBy) {
        this.modifyBy = modifyBy;
    }

    /**
     * 获取最近修改时间
     *
     * @return modify_datetime - 最近修改时间
     */
    public Date getModifyDatetime() {
        return modifyDatetime;
    }

    /**
     * 设置最近修改时间
     *
     * @param modifyDatetime 最近修改时间
     */
    public void setModifyDatetime(Date modifyDatetime) {
        this.modifyDatetime = modifyDatetime;
    }

    /**
     * 获取所属行业:0:美容/1:美发/2:美容美发/3:高尔夫
     *
     * @return industry - 所属行业:0:美容/1:美发/2:美容美发/3:高尔夫
     */
    public Integer getIndustry() {
        return industry;
    }

    /**
     * 设置所属行业:0:美容/1:美发/2:美容美发/3:高尔夫
     *
     * @param industry 所属行业:0:美容/1:美发/2:美容美发/3:高尔夫
     */
    public void setIndustry(Integer industry) {
        this.industry = industry;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SysRole other = (SysRole) that;
        return (this.getRoleId() == null ? other.getRoleId() == null : this.getRoleId().equals(other.getRoleId()))
            && (this.getRoleName() == null ? other.getRoleName() == null : this.getRoleName().equals(other.getRoleName()))
            && (this.getState() == null ? other.getState() == null : this.getState().equals(other.getState()))
            && (this.getFounder() == null ? other.getFounder() == null : this.getFounder().equals(other.getFounder()))
            && (this.getFounderDatetime() == null ? other.getFounderDatetime() == null : this.getFounderDatetime().equals(other.getFounderDatetime()))
            && (this.getModifyBy() == null ? other.getModifyBy() == null : this.getModifyBy().equals(other.getModifyBy()))
            && (this.getModifyDatetime() == null ? other.getModifyDatetime() == null : this.getModifyDatetime().equals(other.getModifyDatetime()))
            && (this.getIndustry() == null ? other.getIndustry() == null : this.getIndustry().equals(other.getIndustry()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getRoleId() == null) ? 0 : getRoleId().hashCode());
        result = prime * result + ((getRoleName() == null) ? 0 : getRoleName().hashCode());
        result = prime * result + ((getState() == null) ? 0 : getState().hashCode());
        result = prime * result + ((getFounder() == null) ? 0 : getFounder().hashCode());
        result = prime * result + ((getFounderDatetime() == null) ? 0 : getFounderDatetime().hashCode());
        result = prime * result + ((getModifyBy() == null) ? 0 : getModifyBy().hashCode());
        result = prime * result + ((getModifyDatetime() == null) ? 0 : getModifyDatetime().hashCode());
        result = prime * result + ((getIndustry() == null) ? 0 : getIndustry().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", roleId=").append(roleId);
        sb.append(", roleName=").append(roleName);
        sb.append(", state=").append(state);
        sb.append(", founder=").append(founder);
        sb.append(", founderDatetime=").append(founderDatetime);
        sb.append(", modifyBy=").append(modifyBy);
        sb.append(", modifyDatetime=").append(modifyDatetime);
        sb.append(", industry=").append(industry);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}