package com.yuchen.saas.manage.system.api.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.nest.springwrap.core.tenant.mp.TenantEntity;

import javax.validation.constraints.NotNull;
import java.io.Serializable;


@Data
@TableName("nest_role")
@ApiModel(value = "Role对象", description = "Role对象")
public class Role extends TenantEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 父主键
     */
    @ApiModelProperty(name = "parentId", value = "父主键")
    private Long parentId;
    /**
     * 角色名
     */
    @ApiModelProperty(name = "roleName", value = "角色名")
    private String roleName;
    /**
     * 排序
     */
    @ApiModelProperty(name = "sort", value = "排序")
    private Integer sort;
    /**
     * 角色别名
     */
    @ApiModelProperty(name = "roleAlias", value = "角色别名")
    private String roleAlias;
    /**
     * 组织机构ID
     */
    @ApiModelProperty(name = "deptId", value = "组织机构ID")
    private Long deptId;

    @ApiModelProperty(name = "isDefault", value = "是否默认（0：否1：是）")
    private Integer isDefault;
    /**
     * 组织范围类型（1：全部，2，所在部门及下级部门，3：指定部门）
     */
    @ApiModelProperty(name = "deptScopeType", value = "组织范围类型（1：全部，2，所在部门及下级部门，3：指定部门）")
    @NotNull(message = "组织范围不能为空")
    private Integer deptScopeType;
    /**
     * 业务范围类型（1：全部，2：指定）
     */
    @ApiModelProperty(name = "businessScopeType", value = "业务范围类型（1：全部，2：指定）")
    @NotNull(message = "业务范围不能为空")
    private Integer businessScopeType;
    /**
     * 功能范围类型（1：全部，2：指定）
     */
    @ApiModelProperty(name = "featureScopeType", value = "功能范围类型（1：全部，2：指定）")
    @NotNull(message = "功能范围不能为空")
    private Integer featureScopeType;

    @ApiModelProperty(name = "updateUserName", value = "最近修改人名")
    @TableField(exist = false)
    private String updateUserName;


    @ApiModelProperty(name = "type", value = "权限类型,0正常的,1主管理员,2子管理员(主管)")
    private Integer type;
}
