package com.pavis.admin.aigc.model.resp;

import lombok.Data;

import io.swagger.v3.oas.annotations.media.Schema;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;

import com.pavis.admin.common.model.resp.BaseDetailResp;
import java.io.Serial;

/**
 * 智能对话消息详情信息
 *
 * @author semi
 * @since 2025/05/26 17:28
 */
@Data
@ExcelIgnoreUnannotated
@Schema(description = "智能对话消息详情信息")
public class AigcMessageDetailResp extends BaseDetailResp {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 所属会话ID
     */
    @Schema(description = "所属会话ID")
    @ExcelProperty(value = "所属会话ID")
    private Long conversationId;

    /**
     * 父消息ID
     */
    @Schema(description = "父消息ID")
    @ExcelProperty(value = "父消息ID")
    private Long parentId;

    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    @ExcelProperty(value = "用户ID")
    private Long userId;

    /**
     * 用户类型:1普通用户 2API账号
     */
    @Schema(description = "用户类型:1普通用户 2API账号")
    @ExcelProperty(value = "用户类型:1普通用户 2API账号")
    private Boolean userType;

    /**
     * 客户端UA信息
     */
    @Schema(description = "客户端UA信息")
    @ExcelProperty(value = "客户端UA信息")
    private String userAgent;

    /**
     * 客户端IP
     */
    @Schema(description = "客户端IP")
    @ExcelProperty(value = "客户端IP")
    private String clientIp;

    /**
     * 消息角色
     */
    @Schema(description = "消息角色")
    @ExcelProperty(value = "消息角色")
    private String role;

    /**
     * 消息内容
     */
    @Schema(description = "消息内容")
    @ExcelProperty(value = "消息内容")
    private String content;

    /**
     * 内容类型:text/image/audio/video/file
     */
    @Schema(description = "内容类型:text/image/audio/video/file")
    @ExcelProperty(value = "内容类型:text/image/audio/video/file")
    private String contentType;

    /**
     * 元数据
     */
    @Schema(description = "元数据")
    @ExcelProperty(value = "元数据")
    private String contentMetadata;

    /**
     * 调用模型ID
     */
    @Schema(description = "调用模型ID")
    @ExcelProperty(value = "调用模型ID")
    private Long modelId;

    /**
     * 模型版本快照
     */
    @Schema(description = "模型版本快照")
    @ExcelProperty(value = "模型版本快照")
    private String modelVersion;

    /**
     * 状态:0删除 1正常 2标记
     */
    @Schema(description = "状态:0删除 1正常 2标记")
    @ExcelProperty(value = "状态:0删除 1正常 2标记")
    private Boolean status;

    /**
     * 错误信息
     */
    @Schema(description = "错误信息")
    @ExcelProperty(value = "错误信息")
    private String errorInfo;

    /**
     * 敏感内容标记
     */
    @Schema(description = "敏感内容标记")
    @ExcelProperty(value = "敏感内容标记")
    private Boolean isSensitive;

    /**
     * 知识库检索结果
     */
    @Schema(description = "知识库检索结果")
    @ExcelProperty(value = "知识库检索结果")
    private String retrievalResults;

    /**
     * 工具调用记录
     */
    @Schema(description = "工具调用记录")
    @ExcelProperty(value = "工具调用记录")
    private String toolCalls;
}