package cn.nianxx.thhotel.platform.debug.common.result;

import cn.nianxx.thhotel.integrations.ai.superagent.common.result.SuperAgentOpenApiTraceEvent;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.JsonNode;
import java.util.List;
import java.util.Map;

/**
 * Debug EML 上传到 SuperAgent 的响应结果。仅用于调试页面，不代表业务任务创建成功。
 *
 * @param debugRunId Debug 运行 ID
 * @param sourceMessageId 内部 SourceMessage ID
 * @param sourceProvider 来源 provider，固定 DEBUG_EML_UPLOAD
 * @param externalMessageId 外部邮件 ID
 * @param externalConversationId 外部会话 ID
 * @param originalEmlOssUrl 原始 .eml OSS URL
 * @param originalEmlSha256 原始 .eml SHA-256
 * @param uploadedMedia 上传后的媒体列表
 * @param htmlBodyWithOssUrls 替换 cid 后的 HTML
 * @param htmlBodySanitized 后端清洗后的 HTML，前端调试展示应优先使用
 * @param htmlSanitizeRequired 是否要求前端按安全 HTML 规则展示
 * @param htmlRenderMode HTML 渲染建议模式
 * @param agentbusLikePayload 发送给 SuperAgent 的结构化 payload
 * @param superagentSessionId SuperAgent session ID
 * @param superagentRunId SuperAgent run ID
 * @param superagentRawAnswer SuperAgent 原始最终回答
 * @param superagentParsedJson 后端解析出的 JSON
 * @param superagentTraceEvents SuperAgent 公开 Trace 事件列表
 * @param warnings 可展示的安全警告
 * @param status Debug 运行状态
 */
public record DebugEmlSuperAgentRunResult(
        @JsonProperty("debug_run_id")
        String debugRunId,
        @JsonProperty("source_message_id")
        String sourceMessageId,
        @JsonProperty("source_provider")
        String sourceProvider,
        @JsonProperty("external_message_id")
        String externalMessageId,
        @JsonProperty("external_conversation_id")
        String externalConversationId,
        @JsonProperty("original_eml_oss_url")
        String originalEmlOssUrl,
        @JsonProperty("original_eml_sha256")
        String originalEmlSha256,
        @JsonProperty("uploaded_media")
        List<DebugEmlUploadedMediaResult> uploadedMedia,
        @JsonProperty("html_body_with_oss_urls")
        String htmlBodyWithOssUrls,
        @JsonProperty("html_body_sanitized")
        String htmlBodySanitized,
        @JsonProperty("html_sanitize_required")
        Boolean htmlSanitizeRequired,
        @JsonProperty("html_render_mode")
        String htmlRenderMode,
        @JsonProperty("agentbus_like_payload")
        Map<String, Object> agentbusLikePayload,
        @JsonProperty("superagent_session_id")
        String superagentSessionId,
        @JsonProperty("superagent_run_id")
        String superagentRunId,
        @JsonProperty("superagent_raw_answer")
        String superagentRawAnswer,
        @JsonProperty("superagent_parsed_json")
        JsonNode superagentParsedJson,
        @JsonProperty("superagent_trace_events")
        List<SuperAgentOpenApiTraceEvent> superagentTraceEvents,
        List<String> warnings,
        String status
) {
}
