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

import com.red.circle.console.app.dto.clienobject.admin.ComboCO;
import com.red.circle.console.app.dto.clienobject.admin.MenuCO;
import com.red.circle.console.app.dto.cmd.admin.MenuCmd;
import com.red.circle.console.app.dto.cmd.admin.MenuIdCmd;
import com.red.circle.console.app.dto.cmd.admin.MenuStatusCmd;
import java.util.List;

/**
 * 管理后台，资源权限.
 *
 * @author pengliang on 2023/5/11
 */
public interface AdminMenuService {

  /**
   * 查询所有菜单.
   */
  List<MenuCO> list();

  /**
   * 查询父级菜单(下拉框).
   */
  List<ComboCO> combos();

  /**
   * 查询单个菜单.
   */
  MenuCO getMenu(MenuIdCmd cmd);

  /**
   * 添加菜单.
   */
  void addMenu(MenuCmd cmd);

  /**
   * 修改菜单.
   */
  void updateMenu(MenuCmd cmd);

  /**
   * 移除菜单.
   */
  void removeMenu(MenuIdCmd cmd);

  /**
   * 设置菜单状态.
   */
  void updateMenuStatus(MenuStatusCmd cmd);


}
