package com.ho.common.tools.entity;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Getter
@Setter
@ToString
public class SysPermission implements Serializable {

    @ApiModelProperty(value = "id")
    private Integer id;

    @ApiModelProperty(value = "菜单权限编码")
    private String code;

    @ApiModelProperty(value = "菜单权限名称")
    private String name;

    @ApiModelProperty(value = "菜单权限标识，shiro 适配restful")
    private String perms;

    @ApiModelProperty(value = "访问地址URL")
    private String url;

    @ApiModelProperty(value = "APP访问地址URL")
    private String urlApp;

    @ApiModelProperty(value = "icon图标")
    private String icon;

    @ApiModelProperty(value = "icon图标(app使用)")
    private String iconApp;

    @ApiModelProperty(value = "请求方式 和url 配合使用 (我们用 路径匹配的方式做权限管理的时候用到)")
    private String method;

    @ApiModelProperty(value = "父级id")
    private Integer pid;

    @ApiModelProperty(value = "父级名称")
    private String pidName;

    @ApiModelProperty(value = "排序码")
    private Integer orderNum;

    @ApiModelProperty(value = "菜单权限类型(1:目录;2:菜单;3:按钮)")
    private Integer type;

    @ApiModelProperty(value = "菜单展示类型:all(通用类型) pc(仅PC端展示) app(仅APP展示)")
    private String show;

    @ApiModelProperty(value = "颜色,只有APP会用到")
    private String color;

    @ApiModelProperty(value = "启用状态：1：启用；2：未启用")
    private Integer status;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "是否删除")
    private Integer deleted;

    @ApiModelProperty(value = "子菜单或子按钮集合")
    private List<?> children = new ArrayList<>();

    @ApiModelProperty(value = "菜单与电站关系 (1：公共；2：专用)")
    private Integer scope;

    @ApiModelProperty(value = "是否组态页面 (1：是；0：否)")
    private Integer isConfig;

    @ApiModelProperty(value = "组态地址")
    private String component;

    @ApiModelProperty(value = "路由名称")
    private String menuName;

    @ApiModelProperty(value = "菜单所关联的电站")
    private List<Integer> stationList;

    private String nameEn;
}