package com.ssyf.module.auth.service;

import com.ssyf.module.auth.domain.entity.RoleMenuPermissionRelation;

import java.util.Arrays;
import java.util.List;

/**
* com.ssyf.module.auth.entity.RoleRelation模型业务接口
* @author: auth
* @date: 2022-12-12
*/
public interface RoleMenuPermissionRelationService {

    /**
     * 删除指定菜单权限关联的数据
     * @param menuPermissionUids
     */
    void removeInMenuPermissionUids(List<String> menuPermissionUids);

    /**
     * 删除指定角色关联的数据
     * @param roleUid
     */
    default void removeByRoleUid(String roleUid){
        removeByRoleUids(Arrays.asList(roleUid));
    }

    /**
     * 删除指定角色关联的数据
     * @param roleUids
     */
    void removeByRoleUids(List<String> roleUids);

    /**
     * 获取指定角色的关联数据
     * @param roleUids
     * @return
     */
    List<RoleMenuPermissionRelation> getListInRoleUid(List<String> roleUids);

    /**
     * 为指定角色分配菜单权限，并删除所有旧有关联数据
     * @param roleUid
     * @param menuPermissionUids
     */
    void assignAndRemoveOld(String roleUid, List<String> menuPermissionUids);
}