package com.ruoyi.bst.part.mapper;

import java.util.List;
import com.ruoyi.bst.part.domain.Part;
import com.ruoyi.bst.part.domain.PartVO;
import com.ruoyi.bst.part.domain.PartQuery;
import org.apache.ibatis.annotations.Param;

/**
 * 分区Mapper接口
 *
 * @author ruoyi
 * @date 2025-04-18
 */
public interface PartMapper
{
    /**
     * 查询分区
     *
     * @param partId 分区主键
     * @return 分区
     */
    PartVO selectPartByPartId(Long partId);

    /**
     * 查询分区列表
     *
     * @param query 分区
     * @return 分区集合
     */
    List<PartVO> selectPartList(@Param("query")PartQuery query);

    /**
     * 新增分区
     *
     * @param part 分区
     * @return 结果
     */
    int insertPart(Part part);

    /**
     * 批量新增分区
     */
    int batchInsert(@Param("list") List<? extends Part> list);

    /**
     * 批量修改分区
     */
    int batchUpdate(@Param("list") List<? extends Part> list);

    /**
     * 修改分区
     *
     * @param part 分区
     * @return 结果
     */
    public int updatePart(@Param("data") Part part);

    /**
     * 删除分区
     *
     * @param partId 分区主键
     * @return 结果
     */
    int deletePartByPartId(Long partId);

    /**
     * 批量删除分区
     *
     * @param partIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePartByPartIds(@Param("ids") List<Long> partIds);

    public List<Long> selectIdByQuery(@Param("query") PartQuery query);

    List<PartVO> selectChildren(PartVO partVO);
}
