package com.ruoyi.base.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 对话日志对象 robot_ops_dialogue_log
 * 
 * @author ruoyi
 * @date 2026-05-19
 */
public class DialogueLog extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 机器人编号，用于后续上传上位平台或多机器人汇聚识别 */
    @Excel(name = "机器人编号，用于后续上传上位平台或多机器人汇聚识别")
    private String robotCode;

    /** 会话ID */
    @Excel(name = "会话ID")
    private String sessionId;

    /** 提问时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提问时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date askTime;

    /** 用户问题 */
    @Excel(name = "用户问题")
    private String question;

    /** 机器人回答 */
    private String answer;

    /** 回答摘要 */
    @Excel(name = "回答摘要")
    private String answerSummary;

    /** 命中方式 */
    @Excel(name = "命中方式")
    private String hitType;

    /** 来源场景 */
    @Excel(name = "来源场景")
    private String sceneType;

    /** 结果状态 */
    @Excel(name = "结果状态")
    private String resultStatus;

    /** 失败原因或错误信息 */
    @Excel(name = "失败原因或错误信息")
    private String errorMsg;

    /** 原始请求 */
    private String rawRequest;

    /** 原始响应 */
    private String rawResponse;

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

    public Long getId() 
    {
        return id;
    }

    public void setRobotCode(String robotCode) 
    {
        this.robotCode = robotCode;
    }

    public String getRobotCode() 
    {
        return robotCode;
    }

    public void setSessionId(String sessionId) 
    {
        this.sessionId = sessionId;
    }

    public String getSessionId() 
    {
        return sessionId;
    }

    public void setAskTime(Date askTime) 
    {
        this.askTime = askTime;
    }

    public Date getAskTime() 
    {
        return askTime;
    }

    public void setQuestion(String question) 
    {
        this.question = question;
    }

    public String getQuestion() 
    {
        return question;
    }

    public void setAnswer(String answer) 
    {
        this.answer = answer;
    }

    public String getAnswer() 
    {
        return answer;
    }

    public void setAnswerSummary(String answerSummary) 
    {
        this.answerSummary = answerSummary;
    }

    public String getAnswerSummary() 
    {
        return answerSummary;
    }

    public void setHitType(String hitType) 
    {
        this.hitType = hitType;
    }

    public String getHitType() 
    {
        return hitType;
    }

    public void setSceneType(String sceneType) 
    {
        this.sceneType = sceneType;
    }

    public String getSceneType() 
    {
        return sceneType;
    }

    public void setResultStatus(String resultStatus) 
    {
        this.resultStatus = resultStatus;
    }

    public String getResultStatus() 
    {
        return resultStatus;
    }

    public void setErrorMsg(String errorMsg) 
    {
        this.errorMsg = errorMsg;
    }

    public String getErrorMsg() 
    {
        return errorMsg;
    }

    public void setRawRequest(String rawRequest) 
    {
        this.rawRequest = rawRequest;
    }

    public String getRawRequest() 
    {
        return rawRequest;
    }

    public void setRawResponse(String rawResponse) 
    {
        this.rawResponse = rawResponse;
    }

    public String getRawResponse() 
    {
        return rawResponse;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("robotCode", getRobotCode())
            .append("sessionId", getSessionId())
            .append("askTime", getAskTime())
            .append("question", getQuestion())
            .append("answer", getAnswer())
            .append("answerSummary", getAnswerSummary())
            .append("hitType", getHitType())
            .append("sceneType", getSceneType())
            .append("resultStatus", getResultStatus())
            .append("errorMsg", getErrorMsg())
            .append("rawRequest", getRawRequest())
            .append("rawResponse", getRawResponse())
            .append("createTime", getCreateTime())
            .toString();
    }
}
