package com.ruoyi.brewery.service;

import java.util.List;

import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.entity.WyBreweryMenu;
import com.ruoyi.system.domain.vo.RouterVo;

/**
 * 品牌方菜单权限Service接口
 * 
 * @author ruoyi
 * @date 2024-12-22
 */
public interface IWyBreweryMenuService 
{
    /**
     * 查询品牌方菜单权限
     * 
     * @param menuId 品牌方菜单权限主键
     * @return 品牌方菜单权限
     */
    public WyBreweryMenu selectWyBreweryMenuByMenuId(Long menuId);

    /**
     * 查询品牌方菜单权限列表
     * 
     * @param wyBreweryMenu 品牌方菜单权限
     * @return 品牌方菜单权限集合
     */
    public List<WyBreweryMenu> selectWyBreweryMenuList(WyBreweryMenu wyBreweryMenu);

    /**
     * 新增品牌方菜单权限
     * 
     * @param wyBreweryMenu 品牌方菜单权限
     * @return 结果
     */
    public int insertWyBreweryMenu(WyBreweryMenu wyBreweryMenu);

    /**
     * 修改品牌方菜单权限
     * 
     * @param wyBreweryMenu 品牌方菜单权限
     * @return 结果
     */
    public int updateWyBreweryMenu(WyBreweryMenu wyBreweryMenu);

    /**
     * 批量删除品牌方菜单权限
     * 
     * @param menuIds 需要删除的品牌方菜单权限主键集合
     * @return 结果
     */
    public int deleteWyBreweryMenuByMenuIds(Long[] menuIds);

    /**
     * 删除品牌方菜单权限信息
     * 
     * @param menuId 品牌方菜单权限主键
     * @return 结果
     */
    public int deleteWyBreweryMenuByMenuId(Long menuId);

    List<WyBreweryMenu> selectMenuTreeByUserId(Long userId);

    List<RouterVo> buildMenus(List<WyBreweryMenu> menus);

    List<WyBreweryMenu> buildMenuTree(List<WyBreweryMenu> menus);

    List<TreeSelect> buildMenuTreeSelect(List<WyBreweryMenu> menus);
}
