package com.jwipc.sys.logic;

import cn.hutool.core.lang.Pair;
import com.jwipc.page.PageView;
import com.jwipc.sys.dto.*;
import com.jwipc.sys.model.query.RoleListQuery;

import java.util.List;

/**
 * <p> </p>
 *
 * @author BOGON
 * @version 1.0
 * @since JDK 1.8
 */
public interface RoleLogic {
    PageView getList(RoleListQuery query);

    void save(RoleAddDTO roleAddDTO);

    RoleEditDTO getForEdit(Long id);

    void update(RoleEditDTO roleEditDTO);

    Pair<List<String>, List<String>> getForPermissions(Long id);

    List<RolePermTreeDTO> getPermissionGrid(int type);

    void updatePermission(UpdatePermissionDTO updatePermissionDTO);

    List<Long> getDealtConfig(Long id);

    void updateDealtConfig(DealtWithTargetRoleUpdateDTO updatePermissionDTO);

    void remove(Long id);

    void createSupplierDefaultRole(Long userId);

    List<RoleListDTO> getUserRoles(Long id);
}