package com.ruoyi.excel.wecom.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.excel.wecom.domain.CustomerExportData;
import com.ruoyi.excel.wecom.vo.CustomerExportDataVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 客户导出数据Mapper
 */
@Mapper
public interface CustomerExportDataMapper extends BaseMapper<CustomerExportData> {
    List<Date> getDistinctDate();

    /**
     * 查询客户导出数据列表
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param customerName 客户名称(可选)
     * @return 客户导出数据列表
     */
    List<CustomerExportData> selectCustomerExportDataList(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate,
            @Param("customerName") String customerName
    );

    /**
     * 查询客户导出数据VO列表(用于导出)
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param customerName 客户名称(可选)
     * @return 客户导出数据VO列表
     */
    List<CustomerExportDataVO> selectCustomerExportDataVOList(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate,
            @Param("customerName") String customerName
    );

    /**
     * 根据客户唯一标识查询客户数据（客户名称+添加人账号+添加时间）
     * @param customerName 客户名称
     * @param addUserAccount 添加人账号
     * @param addTime 添加时间
     * @return 客户导出数据
     */
    CustomerExportData selectByUniqueKey(
            @Param("customerName") String customerName,
            @Param("addUserAccount") String addUserAccount,
            @Param("addTime") Date addTime
    );
}
