package com.haha.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.haha.entity.DataPermission;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 数据权限Mapper接口
 */
@Mapper
public interface DataPermissionMapper extends BaseMapper<DataPermission> {

    /**
     * 根据模块编码查询权限列表
     * @param moduleCode 模块编码
     * @return 权限列表
     */
    List<DataPermission> selectByModuleCode(@Param("moduleCode") String moduleCode);

    /**
     * 查询所有启用的权限
     * @return 权限列表
     */
    List<DataPermission> selectAllEnabled();

    /**
     * 根据权限编码查询权限
     * @param permissionCode 权限编码
     * @return 权限信息
     */
    DataPermission selectByPermissionCode(@Param("permissionCode") String permissionCode);

    /**
     * 按模块分组查询所有权限
     * @return 权限列表(按模块分组)
     */
    List<DataPermission> selectAllGroupByModule();

    /**
     * 根据角色ID查询权限列表
     * @param roleId 角色ID
     * @return 权限列表
     */
    List<DataPermission> selectByRoleId(@Param("roleId") Long roleId);

    /**
     * 根据角色ID列表查询权限编码列表
     * @param roleIds 角色ID列表
     * @return 权限编码列表
     */
    List<String> selectPermissionCodesByRoleIds(@Param("roleIds") List<Long> roleIds);
}
