package cn.nianxx.thhotel.platform.debug.repository;

import cn.nianxx.thhotel.platform.debug.common.dto.DebugEmlSuperAgentRunDraft;
import cn.nianxx.thhotel.platform.debug.common.dto.DebugEmlSuperAgentRunSnapshot;
import cn.nianxx.thhotel.platform.debug.common.dto.DebugEmlSuperAgentRunStatusUpdate;
import cn.nianxx.thhotel.platform.debug.common.dto.DebugEmlSuperAgentRunUpdate;
import java.util.Optional;

/**
 * Debug EML 运行持久化端口，Service 不直接依赖 Mapper 和数据库 Entity。
 */
public interface DebugEmlSuperAgentRunRepository {

    /**
     * 新建 Debug 运行记录，返回运行 ID。
     */
    Long insert(DebugEmlSuperAgentRunDraft draft);

    /**
     * 回填 Debug 运行结果，包括 SourceMessage、OSS 和 SuperAgent 信息。
     */
    void updateResult(DebugEmlSuperAgentRunUpdate update);

    /**
     * 更新 Debug 运行状态和安全错误摘要，不覆盖已落库的 SourceMessage 或 OSS 信息。
     */
    void updateStatus(DebugEmlSuperAgentRunStatusUpdate update);

    /**
     * 按 Debug 运行 ID 查询安全快照。
     */
    Optional<DebugEmlSuperAgentRunSnapshot> findById(Long id);
}
