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 huazhongmin * @date 2025-07-23 */ @Data @EqualsAndHashCode(callSuper = true) @SuperBuilder @NoArgsConstructor @AllArgsConstructor @TableName("t_conversation") public class Conversation extends BaseEntity { /** * 用户ID (关联user.id) */ @TableField("user_id") private String userId; /** * 用户类型: registered-注册用户, guest-访客用户 */ @TableField("user_type") private String userType; /** * 对话标题 */ @TableField("title") private String title; /** * 对话类型 */ @TableField("type") private String type; /** * 状态: active-活跃, ended-结束, archived-归档 */ @TableField("status") private String conversationStatus; /** * Coze对话ID */ @TableField("coze_conversation_id") private String cozeConversationId; /** * 使用的Bot ID */ @TableField("bot_id") private String botId; /** * 使用的Workflow ID */ @TableField("workflow_id") private String workflowId; /** * 初始消息 */ @TableField("initial_message") private String initialMessage; /** * 上下文信息 */ @TableField("context") private String context; /** * 主要情绪 */ @TableField("primary_emotion") private String primaryEmotion; /** * 情绪强度 */ @TableField("emotion_intensity") private BigDecimal emotionIntensity; /** * 情绪趋势 */ @TableField("emotion_trend") private String emotionTrend; /** * 关键词 */ @TableField("keywords") private String keywords; /** * AI洞察 */ @TableField("ai_insights") private String aiInsights; /** * 分析置信度 */ @TableField("confidence") private BigDecimal confidence; /** * 开始时间 */ @TableField("start_time") private LocalDateTime startTime; /** * 结束时间 */ @TableField("end_time") private LocalDateTime endTime; /** * 最后活跃时间 */ @TableField("last_active_time") private LocalDateTime lastActiveTime; /** * 消息数量 */ @TableField("message_count") private Integer messageCount; /** * 总Token使用量 */ @TableField("total_tokens") private Integer totalTokens; /** * 总费用 */ @TableField("total_cost") private BigDecimal totalCost; /** * 客户端IP地址 (支持IPv6) */ @TableField("client_ip") private String clientIp; /** * 用户代理信息 */ @TableField("user_agent") private String userAgent; /** * 对话摘要 */ @TableField("summary") private String summary; /** * 标签 */ @TableField("tags") private String tags; /** * 扩展元数据 */ @TableField("metadata") private String metadata; }