package com.zsc.edu.gateway.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zsc.edu.gateway.framework.security.UserDetailsImpl;
import com.zsc.edu.gateway.modules.system.dto.MenuDto;
import com.zsc.edu.gateway.modules.system.entity.Menu;
import com.zsc.edu.gateway.modules.system.vo.MenuVo;

import java.util.List;

/**
 * @author zhuang
 */
public interface MenuService extends IService<Menu> {

    List<Menu> selectByRoleId(Long roleId);

    List<Menu> selectByUserId(Long userId, Menu.Type type);

    Menu create(MenuDto dto);

    Menu update(MenuDto dto, Long id);

    Boolean delete(Long id);

    List<MenuVo> getTree(UserDetailsImpl userDetails, String name);

    Menu detail(Long id);
}
