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

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;

/**
 * Debug EML 上传到 SuperAgent 运行实体。记录调试链路的来源捕获、OSS 转存和 AI 调用结果。
 */
@TableName("platform_debug_eml_superagent_run")
public class DebugEmlSuperAgentRunEntity {

    /** Debug 运行 ID。 */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /** 酒店或业务上下文 ID。 */
    private String hotelId;
    /** 前端传入的调试标签。 */
    private String runLabel;
    /** 关联的内部 SourceMessage Inbox ID。 */
    private Long sourceMessageId;
    /** Debug 链路解析或生成的外部邮件 ID。 */
    private String externalMessageId;
    /** Debug 链路解析或生成的外部邮件会话 ID。 */
    private String externalConversationId;
    /** 原始上传 .eml 文件名的安全清洗结果。 */
    private String originalFileName;
    /** 原始 .eml 文件 OSS URL。 */
    private String originalEmlOssUrl;
    /** 原始 .eml 文件 SHA-256。 */
    private String originalEmlSha256;
    /** AgentBus-like payload JSON。 */
    private String payloadJson;
    /** SuperAgent Open API session ID。 */
    private String superagentSessionId;
    /** SuperAgent run ID。 */
    private String superagentRunId;
    /** SuperAgent profile ID。 */
    private String superagentProfileId;
    /** SuperAgent profile version ID。 */
    private String superagentProfileVersionId;
    /** SuperAgent 模型名称。 */
    private String superagentModelName;
    /** SuperAgent 最终原始文本回答。 */
    private String superagentRawAnswer;
    /** 后端解析出的 SuperAgent JSON 字符串。 */
    private String superagentParsedJson;
    /** SuperAgent 输入 token 数。 */
    private Integer superagentInputTokens;
    /** SuperAgent 输出 token 数。 */
    private Integer superagentOutputTokens;
    /** SuperAgent 总 token 数。 */
    private Integer superagentTotalTokens;
    /** Debug 运行状态。 */
    private String runStatus;
    /** 安全错误摘要，不包含邮件正文、Secret 或附件签名 URL。 */
    private String safeErrorSummary;
    /** 记录创建 UTC 时间。 */
    private LocalDateTime createdAt;
    /** 记录更新 UTC 时间。 */
    private LocalDateTime updatedAt;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getHotelId() {
        return hotelId;
    }

    public void setHotelId(String hotelId) {
        this.hotelId = hotelId;
    }

    public String getRunLabel() {
        return runLabel;
    }

    public void setRunLabel(String runLabel) {
        this.runLabel = runLabel;
    }

    public Long getSourceMessageId() {
        return sourceMessageId;
    }

    public void setSourceMessageId(Long sourceMessageId) {
        this.sourceMessageId = sourceMessageId;
    }

    public String getExternalMessageId() {
        return externalMessageId;
    }

    public void setExternalMessageId(String externalMessageId) {
        this.externalMessageId = externalMessageId;
    }

    public String getExternalConversationId() {
        return externalConversationId;
    }

    public void setExternalConversationId(String externalConversationId) {
        this.externalConversationId = externalConversationId;
    }

    public String getOriginalFileName() {
        return originalFileName;
    }

    public void setOriginalFileName(String originalFileName) {
        this.originalFileName = originalFileName;
    }

    public String getOriginalEmlOssUrl() {
        return originalEmlOssUrl;
    }

    public void setOriginalEmlOssUrl(String originalEmlOssUrl) {
        this.originalEmlOssUrl = originalEmlOssUrl;
    }

    public String getOriginalEmlSha256() {
        return originalEmlSha256;
    }

    public void setOriginalEmlSha256(String originalEmlSha256) {
        this.originalEmlSha256 = originalEmlSha256;
    }

    public String getPayloadJson() {
        return payloadJson;
    }

    public void setPayloadJson(String payloadJson) {
        this.payloadJson = payloadJson;
    }

    public String getSuperagentSessionId() {
        return superagentSessionId;
    }

    public void setSuperagentSessionId(String superagentSessionId) {
        this.superagentSessionId = superagentSessionId;
    }

    public String getSuperagentRunId() {
        return superagentRunId;
    }

    public void setSuperagentRunId(String superagentRunId) {
        this.superagentRunId = superagentRunId;
    }

    public String getSuperagentProfileId() {
        return superagentProfileId;
    }

    public void setSuperagentProfileId(String superagentProfileId) {
        this.superagentProfileId = superagentProfileId;
    }

    public String getSuperagentProfileVersionId() {
        return superagentProfileVersionId;
    }

    public void setSuperagentProfileVersionId(String superagentProfileVersionId) {
        this.superagentProfileVersionId = superagentProfileVersionId;
    }

    public String getSuperagentModelName() {
        return superagentModelName;
    }

    public void setSuperagentModelName(String superagentModelName) {
        this.superagentModelName = superagentModelName;
    }

    public String getSuperagentRawAnswer() {
        return superagentRawAnswer;
    }

    public void setSuperagentRawAnswer(String superagentRawAnswer) {
        this.superagentRawAnswer = superagentRawAnswer;
    }

    public String getSuperagentParsedJson() {
        return superagentParsedJson;
    }

    public void setSuperagentParsedJson(String superagentParsedJson) {
        this.superagentParsedJson = superagentParsedJson;
    }

    public Integer getSuperagentInputTokens() {
        return superagentInputTokens;
    }

    public void setSuperagentInputTokens(Integer superagentInputTokens) {
        this.superagentInputTokens = superagentInputTokens;
    }

    public Integer getSuperagentOutputTokens() {
        return superagentOutputTokens;
    }

    public void setSuperagentOutputTokens(Integer superagentOutputTokens) {
        this.superagentOutputTokens = superagentOutputTokens;
    }

    public Integer getSuperagentTotalTokens() {
        return superagentTotalTokens;
    }

    public void setSuperagentTotalTokens(Integer superagentTotalTokens) {
        this.superagentTotalTokens = superagentTotalTokens;
    }

    public String getRunStatus() {
        return runStatus;
    }

    public void setRunStatus(String runStatus) {
        this.runStatus = runStatus;
    }

    public String getSafeErrorSummary() {
        return safeErrorSummary;
    }

    public void setSafeErrorSummary(String safeErrorSummary) {
        this.safeErrorSummary = safeErrorSummary;
    }

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }

    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }
}
