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

import lombok.Data;

import com.baomidou.mybatisplus.annotation.TableName;

import com.pavis.admin.common.model.entity.BaseDO;

import java.io.Serial;

/**
 * 智能对话消息实体
 *
 * @author semi
 * @since 2025/05/26 17:28
 */
@Data
@TableName("aigc_message")
public class AigcMessageDO extends BaseDO {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 所属会话ID
     */
    private Long conversationId;

    /**
     * 父消息ID
     */
    private Long parentId;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户类型:1普通用户 2API账号
     */
    private Boolean userType;

    /**
     * 客户端UA信息
     */
    private String userAgent;

    /**
     * 客户端IP
     */
    private String clientIp;

    /**
     * 消息角色
     */
    private String role;

    /**
     * 消息内容
     */
    private String content;

    /**
     * 内容类型:text/image/audio/video/file
     */
    private String contentType;

    /**
     * 元数据
     */
    private String contentMetadata;

    /**
     * 调用模型ID
     */
    private Long modelId;

    /**
     * 模型版本快照
     */
    private String modelVersion;

    /**
     * token 消耗
     */
    private String usageToken;

    /**
     * 状态:0删除 1正常 2标记
     */
    private Boolean status;

    /**
     * 错误信息
     */
    private String errorInfo;

    /**
     * 敏感内容标记
     */
    private Boolean isSensitive;

    /**
     * 知识库检索结果
     */
    private String retrievalResults;

    /**
     * 工具调用记录
     */
    private String toolCalls;
}
