package com.ema.admin.modules.system.service;

import com.ema.admin.modules.system.entity.SysMenu;
import com.ema.admin.modules.system.entity.SysRole;
import com.ema.admin.modules.system.vo.*;

import javax.validation.Valid;
import java.util.List;

/**
 * 系统用户授权服务
 */
public interface SysAuthService {
    /**
     * 登录
     * @param pwdVo
     * @return
     */
    SysUserVo login(SysUserPwdVo pwdVo);

    /**
     * 忘记密码
     * @param forgotPwdVo
     */
    void forgotPassword(SysUserForgotPwdVo forgotPwdVo);

    /**
     * 获取当前登录用户信息
     * @return
     */
    SysUserVo getCurrentUser();

    /**
     * 获取菜单树
     *
     * @return
     */
    List<SysMenuVo> getCurrentUserMenuTree();

    /**
     * 获取菜单列表
     * @return
     */
    List<SysMenu> getCurrentUserMenus();

    /**
     * 获取当前用户角色列表
     * @return
     */
    List<SysRole> getCurrentUseRoles();

    /**
     * 修改密码
     * @param updatePwdVo
     */
    void updatePwd(@Valid SysUserPwdUpdateVo updatePwdVo);
}
