package jnpf.authority.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jnpf.model.authority.dto.role.FtbPermissionRoleInfoDTO;
import jnpf.model.authority.po.FtbPermissionRole;
import jnpf.model.authority.vo.role.FtbPermissionRoleInfoVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
*
*
*@Author: peng.hao
*@create: 2025/3/5
*
*/
public interface FtbPermissionRoleMapper extends BaseMapper<FtbPermissionRole> {

    /**
     * 根据用户ID获取权限标识列表
     *
     * @param userId 用户ID，用于查询权限信息
     * @return 包含权限标识的列表
     */
    List<String> permissionIdentifications(@Param("userId") String userId);

    /**
     * 根据用户ID和角色信息参数，查询权限列表
     * 此方法用于分页查询用户相关的权限信息，根据用户ID进行筛选，并按照角色信息DTO中的其他参数进一步细化查询条件
     *
     * @param page        分页对象，包含分页信息和数据容器，用于存储查询结果
     * @param roleInfoDTO 角色信息数据传输对象，包含查询条件，如角色名称、权限代码等
     * @return 返回填充了查询结果的分页对象，包括权限信息列表和分页元数据
     */
    Page<FtbPermissionRoleInfoVO> permissionList(@Param("page") Page<FtbPermissionRoleInfoVO> page, @Param("params") FtbPermissionRoleInfoDTO roleInfoDTO);

    /**
     * 根据职位ID查询工作权限
     *
     * @param positionId 职位ID，用于标识特定的职位
     * @return 返回该职位对应的工作权限列表
     */
    List<String> queryJobPermissions(@Param("positionId") String positionId);
}