package org.xyzh.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.xyzh.common.dto.dept.TbSysDeptRole;
import org.xyzh.common.vo.UserDeptRoleVO;

@Mapper
public interface DeptRoleMapper extends BaseMapper<TbSysDeptRole> {
    
    /**
     * @description 查询部门绑定角色（包含名称）
     * @param deptId 部门ID
     * @return List<UserDeptRoleVO> 部门角色列表
     * @author yslg
     * @since 2025-09-28
     */
    List<UserDeptRoleVO> selectDeptRole(String deptId);

    /**
     * @description 查询部门绑定角色列表（包含名称）
     * @return List<UserDeptRoleVO> 部门角色列表
     * @author yslg
     * @since 2025-10-06
     */
    List<UserDeptRoleVO> selectDeptRoleList();

    /**
     * @description 批量绑定部门角色
     * @param deptRoles 部门角色列表
     * @return int 影响行数
     * @author yslg
     * @since 2025-09-28
     */
    int batchBindDeptRole(@Param("deptRoles") List<TbSysDeptRole> deptRoles);

    int batchUnbindDeptRole(@Param("deptRoles") List<TbSysDeptRole> deptRoles);

    List<TbSysDeptRole> selectParentDeptAdmin(UserDeptRoleVO userDeptRole);

    List<TbSysDeptRole> selectChildDeptRole(UserDeptRoleVO userDeptRole);
}
