package com.sunda.spmsuser.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * spms权限表
 * </p>
 *
 * @author Wayne
 * @since 2021-01-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("SPMS_PERMISSION")
@ApiModel(value="SpmsPermission对象", description="spms权限表")
public class SpmsPermission implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "权限ID")
    @TableId("PERMISSION_ID")
    private String permissionId;

    @ApiModelProperty(value = "父ID")
    @TableField("PARENT_ID")
    private String parentId;

    @ApiModelProperty(value = "菜单标题")
    @TableField("MENU_NAME")
    private String menuName;

    @ApiModelProperty(value = "菜单英文标题")
    @TableField("MENU_EN_NAME")
    private String menuEnName;

    @ApiModelProperty(value = "路径")
    @TableField("URL")
    private String url;

    @ApiModelProperty(value = "组件地址")
    @TableField("COMPONENT_URL")
    private String componentUrl;

    @ApiModelProperty(value = "组件名称")
    @TableField("COMPONENT_NAME")
    private String componentName;

    @ApiModelProperty(value = "一级菜单跳转地址")
    @TableField("REDIRECT")
    private String redirect;

    @ApiModelProperty(value = "菜单类型（0：一级菜单；1：二级子菜单；3：三级子菜单；4：按钮权限；）")
    @TableField("MENU_TYPE")
    private Integer menuType;

    @ApiModelProperty(value = "菜单权限编码")
    @TableField("PERMS")
    private String perms;

    @ApiModelProperty(value = "权限策略 1：显示；2禁用；")
    @TableField("PERMS_TYPE")
    private String permsType;

    @ApiModelProperty(value = "菜单排序")
    @TableField("SORT_NO")
    private Integer sortNo;

    @ApiModelProperty(value = "聚合子路由：1是，0否")
    @TableField("ALWAYS_SHOW")
    private Integer alwaysShow;

    @ApiModelProperty(value = "菜单图标")
    @TableField("ICON")
    private String icon;

    @ApiModelProperty(value = "是否路由菜单：0不是，默认1是")
    @TableField("IS_ROUTE")
    private Integer isRoute;

    @ApiModelProperty(value = "是否叶子节点：1是，0不是")
    @TableField("IS_LEAF")
    private Integer isLeaf;

    @ApiModelProperty(value = "描述")
    @TableField("DESCRIPTION")
    private String description;

    @ApiModelProperty(value = "创建时间")
    @TableField("CREATE_TIME")
    private Date createTime;

    @ApiModelProperty(value = "创建人")
    @TableField("CREATE_USER")
    private String createUser;

    @ApiModelProperty(value = "更新时间")
    @TableField("UPDATE_TIME")
    private Date updateTime;

    @ApiModelProperty(value = "更新人")
    @TableField("UPDATE_USER")
    private String updateUser;
    
    @ApiModelProperty(value = "一级菜单ID")
    @TableField("FIRST_MENU_ID")
    private String firstMenuId;
    
    @ApiModelProperty(value = "二级菜单ID")
    @TableField("SECOND_MENU_ID")
    private String secondMenuId;

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getPermissionId() {
        return permissionId;
    }

    public void setPermissionId(String permissionId) {
        this.permissionId = permissionId;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public String getMenuName() {
        return menuName;
    }

    public void setMenuName(String menuName) {
        this.menuName = menuName;
    }

    public String getMenuEnName() {
        return menuEnName;
    }

    public void setMenuEnName(String menuEnName) {
        this.menuEnName = menuEnName;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getComponentUrl() {
        return componentUrl;
    }

    public void setComponentUrl(String componentUrl) {
        this.componentUrl = componentUrl;
    }

    public String getComponentName() {
        return componentName;
    }

    public void setComponentName(String componentName) {
        this.componentName = componentName;
    }

    public String getRedirect() {
        return redirect;
    }

    public void setRedirect(String redirect) {
        this.redirect = redirect;
    }

    public Integer getMenuType() {
        return menuType;
    }

    public void setMenuType(Integer menuType) {
        this.menuType = menuType;
    }

    public String getPerms() {
        return perms;
    }

    public void setPerms(String perms) {
        this.perms = perms;
    }

    public String getPermsType() {
        return permsType;
    }

    public void setPermsType(String permsType) {
        this.permsType = permsType;
    }

    public Integer getSortNo() {
        return sortNo;
    }

    public void setSortNo(Integer sortNo) {
        this.sortNo = sortNo;
    }

    public Integer getAlwaysShow() {
        return alwaysShow;
    }

    public void setAlwaysShow(Integer alwaysShow) {
        this.alwaysShow = alwaysShow;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public Integer getIsRoute() {
        return isRoute;
    }

    public void setIsRoute(Integer isRoute) {
        this.isRoute = isRoute;
    }

    public Integer getIsLeaf() {
        return isLeaf;
    }

    public void setIsLeaf(Integer isLeaf) {
        this.isLeaf = isLeaf;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    @Override
    public String toString() {
        return "SpmsPermission{" +
                "permissionId='" + permissionId + '\'' +
                ", parentId='" + parentId + '\'' +
                ", menuName='" + menuName + '\'' +
                ", menuEnName='" + menuEnName + '\'' +
                ", url='" + url + '\'' +
                ", componentUrl='" + componentUrl + '\'' +
                ", componentName='" + componentName + '\'' +
                ", redirect='" + redirect + '\'' +
                ", menuType=" + menuType +
                ", perms='" + perms + '\'' +
                ", permsType='" + permsType + '\'' +
                ", sortNo=" + sortNo +
                ", alwaysShow=" + alwaysShow +
                ", icon='" + icon + '\'' +
                ", isRoute=" + isRoute +
                ", isLeaf=" + isLeaf +
                ", description='" + description + '\'' +
                ", createTime=" + createTime +
                ", createUser='" + createUser + '\'' +
                ", updateTime=" + updateTime +
                ", updateUser='" + updateUser + '\'' +
                '}';
    }
}
