package ink.wgink.login.oauth2.client.remote.role;

import ink.wgink.annotation.rpc.rest.RemoteService;
import ink.wgink.annotation.rpc.rest.method.RemoteGetMethod;
import ink.wgink.annotation.rpc.rest.params.RemotePathParams;
import ink.wgink.annotation.rpc.rest.params.RemoteQueryParams;
import ink.wgink.annotation.rpc.rest.params.RemoteQueryParamsMap;
import ink.wgink.annotation.rpc.rest.params.RemoteServerParams;
import ink.wgink.pojo.dtos.department.DepartmentUserDTO;
import ink.wgink.pojo.result.SuccessResultList;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: IRoleDepartmentUserRemoteService
 * @Description: 角色部门用户列表
 * @Author: wanggeng
 * @Date: 2022/1/4 6:33 PM
 * @Version: 1.0
 */
@RemoteService("/resource/role/department/user")
public interface IRoleDepartmentUserRemoteService {

    @RemoteGetMethod("listpage-department-user/department-id/{departmentId}/role-id/{roleId}")
    SuccessResultList<List<DepartmentUserDTO>> listPageDepartmentUserByDepartmentIdAndRoleId(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemotePathParams("departmentId") String departmentId, @RemotePathParams("roleId") String roleId, @RemoteQueryParams("page") int page, @RemoteQueryParams("page") int rows, @RemoteQueryParamsMap Map<String, Object> params);

    @RemoteGetMethod("list-department-user/department-id/{departmentId}/role-id/{roleId}")
    List<DepartmentUserDTO> listDepartmentUserByDepartmentIdAndRoleIdAndKeywords(@RemoteServerParams String userCenter,
                                                                                 @RemotePathParams("departmentId") String departmentId,
                                                                                 @RemotePathParams("roleId") String roleId,
                                                                                 @RemoteQueryParams("access_token") String accessToken,
                                                                                 @RemoteQueryParams("keywords") String keywords);
}
