package com.ruoyi.ibs.task.mapper;

import com.ruoyi.ibs.task.domain.dto.VisitTargetDTO;
import com.ruoyi.ibs.task.domain.dto.VisitTaskListDTO;
import com.ruoyi.ibs.task.domain.vo.VisitTargetVO;
import com.ruoyi.ibs.task.domain.vo.VisitTaskListVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author 吴凯程
 * @Date 2025/6/12
 **/
@Mapper
public interface VisitTaskMapper {

    List<VisitTaskListVO> getVisitTaskList(VisitTaskListDTO visitTaskListDTO);

    List<VisitTargetVO> getVisitTargetList(VisitTargetDTO visitTargetDTO);

    List<VisitTargetVO> getCoopVisitTargetList(VisitTargetDTO visitTargetDTO);

    List<VisitTargetVO> getVisitTargetRetailList(VisitTargetDTO visitTargetDTO);

    List<VisitTargetVO> getCoopVisitTargetRetailList(VisitTargetDTO visitTargetDTO);

    List<VisitTargetVO> getVisitTargetBusinessList(VisitTargetDTO visitTargetDTO);

    List<VisitTargetVO> getCoopVisitTargetBusinessList(VisitTargetDTO visitTargetDTO);

    List<VisitTargetVO> getVisitTargetMerchantList(VisitTargetDTO visitTargetDTO);

    List<VisitTargetVO> getCoopVisitTargetMerchantList(VisitTargetDTO visitTargetDTO);

    Long countCampaignTotal(@Param("campaignId") String campaignId, @Param("userId") Long userId);

    Long countCoopCampaignTotal(@Param("campaignId") String campaignId, @Param("userId") Long userId);

    Long countCampaignComplete(@Param("campaignId") String campaignId, @Param("userId") Long userId);

    VisitTargetVO getAppointmentVisitTarget(@Param("campaignId") String campaignId, @Param("userId") Long userId, @Param("custId") String custId);

    String selectFeedbackIdByRecordId(@Param("recordId") String recordId);

}
