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

import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.ema.admin.modules.system.entity.SysRole;
import com.ema.admin.modules.system.vo.SysRoleQueryVo;

import java.util.List;

/**
 * 系统角色信息表 服务层。
 *
 * @author LIJIAN
 * @since 2026-03-23
 */
public interface SysRoleService extends IService<SysRole> {

    /**
     * 根据用户id获取角色信息
     * @param userId 用户id
     * @return 角色信息
     */
    List<SysRole> getRoleByUserId(String userId);

    /**
     * 分页查询系统角色信息表。
     *
     * @param queryVo 查询参数
     * @return 分页对象
     */
    Page<SysRole> page(SysRoleQueryVo queryVo);


    /**
     * 给角色分配菜单权限
     * @param roleId 角色id
     * @param menuIds 菜单id列表
     */
    void assignMenusToRole(String roleId, List<String> menuIds);
}
