package com.emotion.entity; import com.baomidou.mybatisplus.annotation.*; import com.emotion.common.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.SuperBuilder; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor; import java.math.BigDecimal; import java.time.LocalDateTime; /** * 消息实体类 * * @author emotion-museum * @date 2025-07-23 */ @Data @EqualsAndHashCode(callSuper = true) @SuperBuilder @NoArgsConstructor @AllArgsConstructor @TableName("message") public class Message extends BaseEntity { /** * 对话ID */ @TableField("conversation_id") private String conversationId; /** * 消息内容 */ @TableField("content") private String content; /** * 消息类型 */ @TableField("type") private String type; /** * 发送者: user-用户, assistant-AI助手 */ @TableField("sender") private String sender; /** * 消息时间戳 */ @TableField("timestamp") private LocalDateTime timestamp; /** * Coze平台的聊天ID */ @TableField("coze_chat_id") private String cozeChatId; /** * Coze平台的消息ID */ @TableField("coze_message_id") private String cozeMessageId; /** * 消息状态: sending/sent/failed/processing */ @TableField("status") private String status; /** * 错误信息 */ @TableField("error_message") private String errorMessage; /** * 情绪评分 */ @TableField("emotion_score") private BigDecimal emotionScore; /** * 情绪类型 */ @TableField("emotion_type") private String emotionType; /** * 情绪分析置信度 */ @TableField("emotion_confidence") private BigDecimal emotionConfidence; /** * 输入Token数 */ @TableField("prompt_tokens") private Integer promptTokens; /** * 输出Token数 */ @TableField("completion_tokens") private Integer completionTokens; /** * 总Token数 */ @TableField("total_tokens") private Integer totalTokens; /** * API调用费用 */ @TableField("api_cost") private BigDecimal apiCost; /** * 是否已读: 0-未读, 1-已读 */ @TableField("is_read") private Integer isRead; /** * 父消息ID(用于回复链) */ @TableField("parent_message_id") private String parentMessageId; /** * 情绪分析结果 */ @TableField("emotion_analysis") private String emotionAnalysis; /** * 扩展元数据 */ @TableField("metadata") private String metadata; /** * 用户ID (注册用户或访客用户) */ @TableField("user_id") private String userId; /** * 用户类型 (registered/guest) */ @TableField("user_type") private String userType; /** * Coze消息角色 (user/assistant/system) */ @TableField("coze_role") private String cozeRole; /** * Coze消息内容类型 (text/image/file等) */ @TableField("coze_content_type") private String cozeContentType; }