package com.ruoyi.jarvis.mapper;

import com.ruoyi.jarvis.domain.TencentDocBatchPushRecord;
import org.apache.ibatis.annotations.Param;

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

/**
 * 腾讯文档批量推送记录 Mapper
 */
public interface TencentDocBatchPushRecordMapper {
    
    /**
     * 插入批量推送记录
     */
    int insertBatchPushRecord(TencentDocBatchPushRecord record);
    
    /**
     * 更新批量推送记录
     */
    int updateBatchPushRecord(TencentDocBatchPushRecord record);
    
    /**
     * 根据批次ID查询
     */
    TencentDocBatchPushRecord selectByBatchId(@Param("batchId") String batchId);
    
    /**
     * 查询批量推送记录列表
     */
    List<TencentDocBatchPushRecord> selectBatchPushRecordList(TencentDocBatchPushRecord record);
    
    /**
     * 查询最近的推送记录
     */
    List<TencentDocBatchPushRecord> selectRecentRecords(@Param("fileId") String fileId, 
                                                          @Param("limit") int limit);
    
    /**
     * 查询最后一次成功的推送记录
     */
    TencentDocBatchPushRecord selectLastSuccessRecord(@Param("fileId") String fileId, 
                                                        @Param("sheetId") String sheetId);

    /**
     * 仍为 RUNNING 且开始时间早于指定时间的批次（用于超时归档）
     */
    List<TencentDocBatchPushRecord> selectRunningRecordsBefore(@Param("fileId") String fileId,
                                                               @Param("beforeTime") Date beforeTime);
}

