package com.ruoyi.excel.wecom.mapper;

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

import java.util.List;

/**
 * 客户导出数据历史记录Mapper
 */
@Mapper
public interface CustomerExportDataHistoryMapper extends BaseMapper<CustomerExportDataHistory> {

    /**
     * 根据客户ID查询最新版本号
     * @param customerId 客户ID
     * @return 最新版本号，如果没有历史记录则返回0
     */
    Integer selectMaxVersionByCustomerId(@Param("customerId") Long customerId);

    /**
     * 根据客户ID和版本号查询历史记录
     * @param customerId 客户ID
     * @param version 版本号
     * @return 历史记录
     */
    CustomerExportDataHistory selectByCustomerIdAndVersion(
            @Param("customerId") Long customerId,
            @Param("version") Integer version);

    /**
     * 根据客户ID查询所有历史记录（按版本号倒序）
     * @param customerId 客户ID
     * @return 历史记录列表
     */
    List<CustomerExportDataHistory> selectHistoryByCustomerId(@Param("customerId") Long customerId);

    /**
     * 根据数据指纹查询是否存在相同数据
     * @param customerId 客户ID
     * @param dataFingerprint 数据指纹
     * @return 历史记录
     */
    CustomerExportDataHistory selectByCustomerIdAndFingerprint(
            @Param("customerId") Long customerId,
            @Param("dataFingerprint") String dataFingerprint);
}
