package ink.wgink.module.menu.service;

import ink.wgink.interfaces.menu.IMenuBaseService;
import ink.wgink.module.menu.pojo.vos.MenuVO;
import ink.wgink.pojo.dtos.menu.MenuDTO;

import java.util.List;

/**
 * @ClassName: IMenuService
 * @Description: 菜单
 * @Author: wenc
 * @Date: 2018/12/27 10:18 PM
 * @Version: 1.0
 **/
public interface IMenuService extends IMenuBaseService {

    /**
     * 保存菜单
     *
     * @param menuVO
     * @return
     */
    void save(MenuVO menuVO);

    /**
     * 保存菜单
     *
     * @param token
     * @param menuVO
     */
    void save(String token, MenuVO menuVO);

    /**
     * 保存菜单
     *
     * @param menuVO
     */
    String saveAndReturnId(MenuVO menuVO);

    /**
     * 保存菜单
     *
     * @param token
     * @param menuVO
     * @return
     */
    String saveAndReturnId(String token, MenuVO menuVO);

    /**
     * 修改菜单
     *
     * @param menuId 菜单ID
     * @param menuVO
     * @return
     */
    void update(String menuId, MenuVO menuVO);

    /**
     * 修改菜单
     *
     * @param token
     * @param menuId
     * @param menuVO
     */
    void update(String token, String menuId, MenuVO menuVO);

    /**
     * 删除菜单
     *
     * @param token
     * @param ids
     */
    void remove(String token, List<String> ids);

    /**
     * 详情
     *
     * @param menuId
     * @return
     */
    MenuDTO get(String menuId);

    /**
     * 详情（带子集）
     * @param menuId
     * @return
     */
    MenuDTO getAll(String menuId);
}
