package com.ruoyi.jarvis.service;

import com.ruoyi.jarvis.domain.TencentDocBatchPushRecord;

import java.util.List;
import java.util.Map;

/**
 * 腾讯文档批量推送记录服务
 */
public interface ITencentDocBatchPushService {
    
    /**
     * 创建批量推送记录
     */
    String createBatchPushRecord(String fileId, String sheetId, String pushType, 
                                  String triggerSource, Integer startRow, Integer endRow);
    
    /**
     * 更新批量推送记录
     */
    void updateBatchPushRecord(String batchId, String status, Integer successCount, 
                                Integer skipCount, Integer errorCount, String resultMessage, String errorMessage);
    
    /**
     * 根据批次ID查询
     */
    TencentDocBatchPushRecord getBatchPushRecord(String batchId);
    
    /**
     * 查询批量推送记录列表（带操作日志）
     */
    List<TencentDocBatchPushRecord> getBatchPushRecordListWithLogs(String fileId, String sheetId, Integer limit);
    
    /**
     * 查询最后一次成功的推送记录
     */
    TencentDocBatchPushRecord getLastSuccessRecord(String fileId, String sheetId);
    
    /**
     * 获取推送状态和倒计时信息
     */
    Map<String, Object> getPushStatusAndCountdown();

    /**
     * 将长时间仍处于 RUNNING 的批次归档为 INTERRUPTED（并可选发企微告警，见实现类配置）
     */
    void reconcileStaleRunningRecords(String fileId);
}

