package incheon.ags.mrb.analysis.service;

import java.util.List;

import incheon.ags.mrb.analysis.domain.AnalysisKind;
import incheon.ags.mrb.analysis.domain.AnalysisStatus;
import incheon.ags.mrb.analysis.vo.AnlsHstryJoinVO;
import incheon.ags.mrb.analysis.vo.AnlsHstryVO;

public interface AnalysisHistoryService {
    AnlsHstryVO insertAnlsHstry(AnalysisKind analysisKind);
    void updateAnlsHstry(int anlsHstryId, AnalysisStatus analysisStatus, String anlsSttsMssage, Integer userLyrId, String userId);
    void insertAnlsHstryDtl(int anlsHstryId, String sourcLyrNm, String bndryLyrNm, String optionJson);

    /**
     * 분석이력 조회
     */
    List<AnlsHstryJoinVO> getAnalysisHistory(String userId, int offset, int limit, String analysisType, String status, String sortOrder);

    /**
     * 분석이력 총 개수 조회
     */
    int getAnalysisHistoryCount(String userId, String analysisType, String status);
    
    /**
     * 분석이력 삭제
     */
    void deleteAnalysisHistory(String userId, int historyId);

    /**
     * 대기/기동 중 상태 분석 이력을 실패 상태로 초기화
     */
    void markPendingOrRunningAsFailed();
}
