package com.agileboot.system.role.service;

import com.agileboot.common.mybatis.core.page.PageR;
import com.agileboot.system.role.dto.*;
import com.agileboot.system.role.vo.RoleVO;
import com.agileboot.system.user.dto.UserInfo;
import jakarta.validation.constraints.NotNull;

import java.util.List;

public interface ISysRoleService {
    PageR<RoleVO> getRoleList(RoleQuery query);

    RoleVO getRoleInfo(@NotNull Long roleId);

    void addRole(AddRoleDTO addDTO);

    void deleteRole(List<Long> roleIds);

    void updateRole(UpdateRoleDTO updateDTO);

    void updateDataScope(UpdateDataScopeDTO updateDTO);

    void updateStatus(UpdateStatusDTO updateDTO);

    PageR<UserInfo> getAllocatedUserList(AllocatedRoleQuery query);

    PageR<UserInfo> getUnallocatedUserList(UnallocatedRoleQuery query);

    void deleteRoleOfUserByUserIds(List<Long> userIds);

    void addRoleOfUserByByUserIds(Long roleId, List<Long> userIds);
}
