package com.red.circle.console.app.service.admin;

import com.red.circle.console.app.dto.clienobject.admin.RoleCO;
import com.red.circle.console.app.dto.cmd.admin.PageRoleQryCmd;
import com.red.circle.console.app.dto.cmd.admin.RoleCmd;
import com.red.circle.console.app.dto.cmd.admin.RoleIdCmd;
import com.red.circle.console.app.dto.cmd.admin.RoleMenuUpdateCmd;
import com.red.circle.framework.dto.PageResult;
import java.util.List;

/**
 * 角色服务.
 *
 * @author pengliang on 2023/5/12
 */
public interface AdminRoleService {

  /**
   * 查询所有角色(分页).
   */
  PageResult<RoleCO> pageRole(PageRoleQryCmd cmd);

  /**
   * 查询所有角色.
   */
  List<RoleCO> list();

  /**
   * 获取单个角色.
   */
  RoleCO get(RoleIdCmd cmd);

  /**
   * 添加角色.
   */
  void add(RoleCmd cmd);

  /**
   * 修改角色.
   */
  void update(RoleCmd cmd);

  /**
   * 移除角色.
   */
  void remove(RoleIdCmd cmd);

  /**
   * 修改角色菜单.
   */
  void updateRoleMenus(RoleMenuUpdateCmd cmd);

}
