From e26a7859a8900b152e10961d91fa6ad19a8deb9c Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期四, 06 三月 2025 14:41:27 +0800
Subject: [PATCH] 首页通用对话增加

---
 app/models/group_model.py |   79 +++++++++++++++++++++------------------
 1 files changed, 43 insertions(+), 36 deletions(-)

diff --git a/app/models/group_model.py b/app/models/group_model.py
index 52e05a8..281692d 100644
--- a/app/models/group_model.py
+++ b/app/models/group_model.py
@@ -6,28 +6,29 @@
 from pydantic import BaseModel
 from sqlalchemy.orm import relationship, backref
 
+from app.config.const import Dialog_STATSU_DELETE
 from app.models.base_model import Base
 
 
-group_knowledge_table = Table('group_Knowledge', Base.metadata
-                           , Column('group_id', Integer, ForeignKey('group.id'))
-                           , Column('knowledge_id', String(32), ForeignKey('knowledgebase.id')))
+group_knowledge_table = Table('group_knowledge', Base.metadata
+                           , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))
+                           , Column('knowledge_id', String(32), ForeignKey('knowledgebases.id', ondelete='CASCADE')))
 
 group_dialog_table = Table('group_dialogs', Base.metadata
-                           , Column('group_id', Integer, ForeignKey('group.id'))
-                           , Column('dialog_id', String(36), ForeignKey('dialogs.id')))
+                           , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))
+                           , Column('dialog_id', String(36), ForeignKey('dialogs.id', ondelete='CASCADE')))
 
-group_agent_table = Table('group_agent', Base.metadata
-                           , Column('group_id', Integer, ForeignKey('group.id'))
-                           , Column('agent_id', String(36), ForeignKey('user_canvas.id')))
+group_agent_table = Table('group_canvas', Base.metadata
+                           , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))
+                           , Column('canvas_id', String(36), ForeignKey('canvas.id', ondelete='CASCADE')))
 
 group_llm_table = Table('group_llm', Base.metadata
-                           , Column('group_id', Integer, ForeignKey('group.id'))
-                           , Column('llm_id', String(36), ForeignKey('common_llm.id')))
+                           , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))
+                           , Column('llm_id', String(36), ForeignKey('common_llm.id', ondelete='CASCADE')))
 
 group_unified_agent_table = Table('group_unified_agent', Base.metadata
-                                    , Column('group_id', Integer, ForeignKey('group.id'))
-                                    ,Column('unified_agent_id', String(36), ForeignKey('unified_agent.id')))
+                                    , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))
+                                    ,Column('unified_agent_id', String(36), ForeignKey('unified_agent.id', ondelete='CASCADE')))
 
 
 class GroupModel(Base):
@@ -38,6 +39,8 @@
     status = Column(String(10), nullable=False, default="1")
     created_at = Column(DateTime, default=datetime.now())
     updated_at = Column(DateTime, default=datetime.now(), onupdate=datetime.now())
+    creator = Column(Integer)
+    group_type = Column(Integer, default=1)
 
 
     knowledges = relationship('KnowledgeModel',
@@ -52,18 +55,15 @@
 
     agents = relationship('CanvasModel',
                              secondary=group_agent_table,
-                             backref=backref('groups', lazy='dynamic'),
-                             lazy="dynamic")
+                             backref=backref('groups', lazy='dynamic'))
 
     llms = relationship('CommonLlmModel',
                            secondary=group_llm_table,
-                           backref=backref('groups', lazy='dynamic'),
-                           lazy="dynamic")
+                           backref=backref('groups', lazy='dynamic'))
 
     unified_agents = relationship('UnifiedAgentModel',
                                      secondary=group_unified_agent_table,
-                                     backref=backref('roles', lazy='dynamic'),
-                                     lazy="dynamic")
+                                     backref=backref('groups', lazy='dynamic'))
     def to_dict(self):
         return {
             'groupId': self.id,
@@ -79,34 +79,34 @@
 
 
     def __repr__(self):
-        return '<Role name:%r description:%r iconCls:%r seq:%r>\n' \
-            % (self.NAME, self.DESCRIPTION, self.ICONCLS, self.SEQ)
+        return '<Role name:%r description:%r>\n' \
+            % (self.group_name, self.group_description)
 
     def to_json(self):
         json = {
-            'roleId': self.id,
+            'groupId': self.id,
             'createTime': self.created_at.strftime('%Y-%m-%d %H:%M:%S'),
             'updateTime': self.updated_at.strftime('%Y-%m-%d %H:%M:%S'),
             'groupName': self.group_name,
-            'remark': self.group_description,
+            'description': self.group_description,
             'status': self.status,
         }
-        if len(self.knowledges.all()) > 0:
-            json['knowledges'] = [knowledge.to_json() for knowledge in self.knowledges]
+        # if len(self.knowledges.all()) > 0:
+        json['knowledges'] = [knowledge.to_json() for knowledge in self.knowledges]
 
-        if len(self.dialogs.all()) > 0:
-            json['dialogs'] = [dialog.to_json() for dialog in self.dialogs]
+        # if len(self.dialogs.all()) > 0:
+        json['dialogs'] = [dialog.to_json() for dialog in self.dialogs if dialog.status != Dialog_STATSU_DELETE]
 
-        if len(self.agents.all()) > 0:
-            json['agents'] = [agent.to_json() for agent in self.agents]
+        # if len(self.agents.all()) > 0:
+        #     json['agents'] = [agent.to_json() for agent in self.agents]
 
-        if len(self.llms.all()) > 0:
-            json['llms'] = [llm.to_json() for llm in self.llms]
+        # if len(self.llms.all()) > 0:
+        json['llms'] = [llm.to_json() for llm in self.llms]
 
         json['users'] = [user.to_dict() for user in self.users]
 
-        if hasattr(self, 'flag'):
-            json['flag'] = self.flag
+        # if hasattr(self, 'flag'):
+        #     json['flag'] = self.flag
 
         return json
 
@@ -121,11 +121,18 @@
 
 class GroupData(BaseModel):
     id: Optional[int] = None
-    group_name: Optional[str] = ""
-    group_description: Optional[str] = ""
-    group_status: Optional[str] = ""
+    groupName: Optional[str] = ""
+    description: Optional[str] = ""
+    status: Optional[str] = ""
 
 class GroupUsers(BaseModel):
     id: int
-    user_list: list
+    userList: list
+
+
+class GroupResource(BaseModel):
+    id: int
+    llms: list
+    dialogs: list
+    knowledges: list
 

--
Gitblit v1.8.0