package ink.wgink.service.role.service;

import ink.wgink.interfaces.role.IRoleBaseService;
import ink.wgink.interfaces.role.IRoleCheckService;
import ink.wgink.service.role.pojo.vos.RoleVO;

import java.util.List;

/**
 * When you feel like quitting. Think about why you started
 * 当你想要放弃的时候，想想当初你为何开始
 *
 * @ClassName: IRoleService
 * @Description: 角色
 * @Author: WangGeng
 * @Date: 2021/1/31 18:50
 * @Version: 1.0
 **/
public interface IRoleService extends IRoleBaseService, IRoleCheckService {

    /**
     * 授权新增
     */
    String AUTH_TYPE_INSERT = "1";
    /**
     * 授权删除
     */
    String AUTH_TYPE_DELETE = "2";
    /**
     * 授权更新
     */
    String AUTH_TYPE_UPDATE = "3";
    /**
     * 授权查询
     */
    String AUTH_TYPE_QUERY = "4";
    /**
     * 授权菜单
     */
    String AUTH_TYPE_MENU = "5";
    /**
     * 角色菜单新增
     */
    String ROLE_INSERT = "roleInsert";
    /**
     * 角色菜单删除
     */
    String ROLE_DELETE = "roleDelete";
    /**
     * 角色菜单更新
     */
    String ROLE_UPDATE = "roleUpdate";
    /**
     * 角色菜单查询
     */
    String ROLE_QUERY = "roleQuery";
    /**
     * 角色菜单
     */
    String ROLE_MENU = "roleMenu";
    /**
     * 角色类型
     */
    String ROLE_TYPE = "roleType";

    /**
     * 新增角色
     *
     * @param roleVO
     * @return
     */
    void save(RoleVO roleVO);

    /**
     * 删除角色
     *
     * @param ids
     * @return
     */
    void remove(List<String> ids);

    /**
     * 修改角色
     *
     * @param roleId
     * @param roleVO
     * @return
     */
    void update(String roleId, RoleVO roleVO);

    /**
     * 修改角色数据权限
     *
     * @param roleId
     * @param roleDataRight
     */
    void updateRoleDataRight(String roleId, String roleDataRight);


}
