From 1225b6cbf0a028b765a0ab6d784bcb80459a67bb Mon Sep 17 00:00:00 2001
From: yj <2077506045@qq.com>
Date: 星期三, 23 七月 2025 17:59:54 +0800
Subject: [PATCH] 功能更新

---
 app/models/conversation.py |   47 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 30 insertions(+), 17 deletions(-)

diff --git a/app/models/conversation.py b/app/models/conversation.py
index f153429..eb646c5 100644
--- a/app/models/conversation.py
+++ b/app/models/conversation.py
@@ -1,38 +1,51 @@
 """
 瀵硅瘽璁板綍妯″瀷
 """
-from sqlalchemy import Column, String, Integer, DateTime, Text, Boolean
+
+from sqlalchemy import Column, String, Integer, DateTime, Text, Boolean, UniqueConstraint
 from sqlalchemy.sql import func
 from .database import Base
 
 
 class Conversation(Base):
     """瀵硅瘽璁板綍琛�"""
+
     __tablename__ = "conversations"
-    
+
     id = Column(Integer, primary_key=True, index=True, autoincrement=True)
-    user_conversation_key = Column(String(200), unique=True, index=True, nullable=False, 
-                                 comment="鐢ㄦ埛瀵硅瘽鍞竴閿�(fromUser+conversation_id)")
-    from_user = Column(String(100), index=True, nullable=False, comment="鍙戦�佺敤鎴峰井淇D")
+    from_user = Column(
+        String(100), index=True, nullable=False, comment="鍙戦�佺敤鎴峰井淇D"
+    )
     conversation_id = Column(String(100), nullable=False, comment="Dify瀵硅瘽ID")
-    
-    # 鐢ㄦ埛闂
-    user_question = Column(Text, nullable=False, comment="鐢ㄦ埛鎻愰棶鍐呭")
-    
-    # AI鍥炵瓟
-    ai_answer = Column(Text, nullable=True, comment="AI鍥炵瓟鍐呭")
-    
+    group = Column(String(100), nullable=False, comment="缇ょ粍ID")
+    hour = Column(String(20), nullable=False, comment="灏忔椂鏍囪瘑(YYYYMMDD_HH)")
+
+    # 瀵硅瘽鍐呭锛圝SON鏍煎紡锛�
+    content = Column(
+        Text,
+        nullable=True,
+        comment='瀵硅瘽鍐呭JSON鏍煎紡锛屽[{"user":"浣犲ソ","ai":"浣犲ソ鏈変粈涔堣兘甯姪浣犵殑"}]',
+    )
+
     # 娑堟伅鐘舵��
     is_processed = Column(Boolean, default=False, comment="鏄惁宸插鐞�")
     is_sent = Column(Boolean, default=False, comment="鏄惁宸插彂閫佸洖澶�")
-    
+
     # 鏃堕棿鎴�
     question_time = Column(DateTime, default=func.now(), comment="鎻愰棶鏃堕棿")
     answer_time = Column(DateTime, nullable=True, comment="鍥炵瓟鏃堕棿")
     sent_time = Column(DateTime, nullable=True, comment="鍙戦�佹椂闂�")
-    
+
     created_at = Column(DateTime, default=func.now(), comment="鍒涘缓鏃堕棿")
-    updated_at = Column(DateTime, default=func.now(), onupdate=func.now(), comment="鏇存柊鏃堕棿")
-    
+    updated_at = Column(
+        DateTime, default=func.now(), onupdate=func.now(), comment="鏇存柊鏃堕棿"
+    )
+
+    # 娣诲姞鍥涘瓧娈电粍鍚堢殑鍞竴鎬х害鏉�
+    __table_args__ = (
+        UniqueConstraint('from_user', 'conversation_id', 'group', 'hour',
+                         name='uq_conversation_key'),
+    )
+
     def __repr__(self):
-        return f"<Conversation(from_user='{self.from_user}', conversation_id='{self.conversation_id}')>"
+        return f"<Conversation(from_user='{self.from_user}', conversation_id='{self.conversation_id}', group='{self.group}', hour='{self.hour}')>"

--
Gitblit v1.9.1