package com.ruoyi.excel.wecom.mapper;

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

import java.util.List;

/**
 * 客户数据变更日志Mapper
 */
@Mapper
public interface CustomerDataChangeLogMapper extends BaseMapper<CustomerDataChangeLog> {

    /**
     * 根据客户ID查询所有变更日志（按时间倒序）
     * @param customerId 客户ID
     * @return 变更日志列表
     */
    List<CustomerDataChangeLog> selectChangeLogByCustomerId(@Param("customerId") Long customerId);

    /**
     * 根据历史记录ID查询变更日志
     * @param historyId 历史记录ID
     * @return 变更日志列表
     */
    List<CustomerDataChangeLog> selectChangeLogByHistoryId(@Param("historyId") Long historyId);

    /**
     * 根据客户ID和版本号查询变更日志
     * @param customerId 客户ID
     * @param version 版本号
     * @return 变更日志列表
     */
    List<CustomerDataChangeLog> selectChangeLogByCustomerIdAndVersion(
            @Param("customerId") Long customerId,
            @Param("version") Integer version);

    /**
     * 批量插入变更日志
     * @param changeLogs 变更日志列表
     * @return 插入数量
     */
    int batchInsert(@Param("changeLogs") List<CustomerDataChangeLog> changeLogs);
}
