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

import cn.nianxx.thhotel.platform.debug.common.result.DebugEmlSuperAgentRunResult;
import java.io.OutputStream;
import org.springframework.web.multipart.MultipartFile;

/**
 * Debug EML 上传到 SuperAgent 的服务契约。Controller 不直接处理解析、OSS 或外部 AI 调用。
 */
public interface DebugEmlSuperAgentRunService {

    /**
     * 校验 Debug EML 上传访问口令。流式入口需要在响应开始前完成校验，才能保留标准 HTTP 401。
     */
    void validateUploadAccessKey(String accessKey);

    /**
     * 上传并处理单封 EML，写入 SourceMessage 后调用 SuperAgent Open API。
     */
    DebugEmlSuperAgentRunResult uploadAndRun(
            String accessKey,
            MultipartFile file,
            String hotelId,
            String runLabel);

    /**
     * 上传并处理单封 EML，按 text/event-stream 实时写出内部阶段、SuperAgent Trace 和最终结果。
     */
    void uploadAndRunStream(
            String accessKey,
            MultipartFile file,
            String hotelId,
            String runLabel,
            OutputStream outputStream);
}
