package com.cpop.oam.business.service;

import com.cpop.oam.business.bo.MenuBo;
import com.cpop.oam.business.bo.MenuListBo;
import com.cpop.oam.business.vo.MenuRouteVo;
import com.cpop.oam.business.vo.MenuVo;
import com.mybatisflex.core.service.IService;
import com.cpop.oam.business.entity.Menu;

import java.util.List;

/**
 * 系统菜单表 服务层。
 *
 * @author DB
 * @since 2023-10-19
 */
public interface MenuService extends IService<Menu> {


    /**
     * 获取菜单路由
     * @author DB
     * @since 2023/10/19 16:32
     */
    List<MenuRouteVo> getSysMenuList();

    /**
     * 获取系统菜单树列表
     * @author DB
     * @since 2023/09/07 15:53
     * @param bo 请求参数
     */
    List<MenuVo> getSysMenuTreeList(MenuListBo bo);

    /**
     * 获取目录与菜单树
     * @author DB
     * @since 2023/09/07 17:42
     */
    List<MenuVo> getDirectoryAndMenuTreeList();

    /**
     * 新增菜单
     * @author DB
     * @since 2023/09/07 17:50
     * @param bo 请求参数
     */
    void insertSysMenu(MenuBo bo);

    /**
     * 修改菜单
     * @param bo 请求参数
     * @author DB
     * @since 2023/5/10 16:01
     **/
    void updateSysMenu(MenuBo bo);

    /**
     * 删除菜单
     * @param id 主键id
     * @author DB
     * @since 2023/5/10 16:01
     **/
    void removeSysMenu(String id);
}
