package com.ruoyi.dpc.service;

import com.ruoyi.dpc.domain.DpcIntermediaryBlacklist;
import com.ruoyi.dpc.domain.dto.DpcIntermediaryBlacklistAddDTO;
import com.ruoyi.dpc.domain.dto.DpcIntermediaryBlacklistEditDTO;
import com.ruoyi.dpc.domain.dto.DpcIntermediaryBlacklistQueryDTO;
import com.ruoyi.dpc.domain.vo.DpcIntermediaryBlacklistVO;

import java.util.List;

/**
 * 中介人员黑名单 服务层
 *
 * @author ruoyi
 * @date 2026-01-27
 */
public interface IDpcIntermediaryBlacklistService {

    /**
     * 查询中介黑名单列表
     *
     * @param queryDTO 查询条件
     * @return 中介黑名单集合
     */
    List<DpcIntermediaryBlacklistVO> selectIntermediaryList(DpcIntermediaryBlacklistQueryDTO queryDTO);

    /**
     * 查询中介黑名单列表（用于导出）
     *
     * @param queryDTO 查询条件
     * @return 中介黑名单实体集合
     */
    List<DpcIntermediaryBlacklist> selectIntermediaryListForExport(DpcIntermediaryBlacklistQueryDTO queryDTO);

    /**
     * 查询中介黑名单详细
     *
     * @param intermediaryId 中介ID
     * @return 中介黑名单VO
     */
    DpcIntermediaryBlacklistVO selectIntermediaryById(Long intermediaryId);

    /**
     * 新增中介黑名单
     *
     * @param addDTO 新增DTO
     * @return 结果
     */
    int insertIntermediary(DpcIntermediaryBlacklistAddDTO addDTO);

    /**
     * 修改中介黑名单
     *
     * @param editDTO 编辑DTO
     * @return 结果
     */
    int updateIntermediary(DpcIntermediaryBlacklistEditDTO editDTO);

    /**
     * 批量删除中介黑名单
     *
     * @param intermediaryIds 需要删除的中介ID
     * @return 结果
     */
    int deleteIntermediaryByIds(Long[] intermediaryIds);

    /**
     * 导入中介黑名单数据
     *
     * @param addDTOList    新增DTO列表
     * @param isUpdateSupport 是否更新支持
     * @return 结果
     */
    String importIntermediary(List<DpcIntermediaryBlacklistAddDTO> addDTOList, Boolean isUpdateSupport);
}
