package com.zhyc.module.base.mapper;

import com.zhyc.module.base.domain.BasSheepGroup;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 分组管理Mapper接口
 * 
 * @author wyt
 * @date 2025-07-14
 */
@Mapper
public interface BasSheepGroupMapper 
{
    /**
     * 查询分组管理
     * 
     * @param groupId 分组管理主键
     * @return 分组管理
     */
    public BasSheepGroup selectBasSheepGroupByGroupId(Long groupId);

    /**
     * 查询分组管理列表
     * 
     * @param basSheepGroup 分组管理
     * @return 分组管理集合
     */
    public List<BasSheepGroup> selectBasSheepGroupList(BasSheepGroup basSheepGroup);

    /**
     * 新增分组管理
     * 
     * @param basSheepGroup 分组管理
     * @return 结果
     */
    public int insertBasSheepGroup(BasSheepGroup basSheepGroup);

    /**
     * 修改分组管理
     * 
     * @param basSheepGroup 分组管理
     * @return 结果
     */
    public int updateBasSheepGroup(BasSheepGroup basSheepGroup);

    /**
     * 删除分组管理
     * 
     * @param groupId 分组管理主键
     * @return 结果
     */
    public int deleteBasSheepGroupByGroupId(Long groupId);

    /**
     * 批量删除分组管理
     * 
     * @param groupIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBasSheepGroupByGroupIds(Long[] groupIds);

    List<BasSheepGroup> selectLeafNodes();


    // 新增方法：根据父节点和分组名称查询是否存在
    BasSheepGroup selectByParentIdAndGroupName(@Param("parentId") Long parentId, @Param("groupName") String groupName);

}
