package com.ssyf.module.auth.service;

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

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

/**
* com.ssyf.module.auth.entity.UserRoleRelation模型业务接口
* @author: auth
* @date: 2023-01-12
*/
public interface UserRoleRelationService {
    /**
     * 获取指定用户的关联数据
     * @param userUid
     * @return
     */
    default List<UserRoleRelation> getListByUserUid(String userUid){
        return getListByUserUids(Arrays.asList(userUid));
    }

    /**
     * 获取指定用户的关联数据
     * @param userUids
     * @return
     */
    List<UserRoleRelation> getListByUserUids(List<String> userUids);

    /**
     * 删除指定角色的关联数据
     * @param roleUid
     */
    void removeByRoleUid(String roleUid);

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

    /**
     * 删除指定用户的关联数据
     * @param userUid
     */
    void removeByUserUid(String userUid);

    /**
     * 删除指定用户的关联数据
     * @param userUids
     */
    void removeByUserUids(List<String> userUids);

    /**
     * 为指定用户分配角色，并删除旧有关联数据
     * @param userUid
     * @param roleUids
     */
    void assignAndRemoveOld(String userUid, List<String> roleUids);

    /**
     * 获取指定角色的关联数据
     * @param roleUid
     * @return
     */
    List<UserRoleRelation> getListByRoleUid(String roleUid);
}