浏览代码

suhh-知识库新增部门id和编辑权限字段、账号新增部门id、新增部门

‘suhuihui’ 2 月之前
父节点
当前提交
268d18c054
共有 3 个文件被更改,包括 54 次插入1 次删除
  1. 1 0
      api/models/account.py
  2. 24 1
      api/models/dataset.py
  3. 29 0
      api/models/dept.py

+ 1 - 0
api/models/account.py

@@ -39,6 +39,7 @@ class Account(UserMixin, Base):
     initialized_at = db.Column(db.DateTime)
     initialized_at = db.Column(db.DateTime)
     created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
     created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
     updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
     updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
+    dept_id = db.Column(StringUUID, nullable=True)
 
 
     @property
     @property
     def is_password_set(self):
     def is_password_set(self):

+ 24 - 1
api/models/dataset.py

@@ -62,6 +62,8 @@ class Dataset(db.Model):  # type: ignore[name-defined]
     collection_binding_id = db.Column(StringUUID, nullable=True)
     collection_binding_id = db.Column(StringUUID, nullable=True)
     retrieval_model = db.Column(JSONB, nullable=True)
     retrieval_model = db.Column(JSONB, nullable=True)
     built_in_field_enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
     built_in_field_enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
+    dept_id = db.Column(StringUUID, nullable=True)
+    edit_auth = db.Column(db.Integer, nullable=False)
 
 
     @property
     @property
     def dataset_keyword_table(self):
     def dataset_keyword_table(self):
@@ -386,7 +388,6 @@ class Document(db.Model):  # type: ignore[name-defined]
 
 
     DATA_SOURCES = ["upload_file", "notion_import", "website_crawl"]
     DATA_SOURCES = ["upload_file", "notion_import", "website_crawl"]
 
 
-
     @property
     @property
     def display_status(self):
     def display_status(self):
         status = None
         status = None
@@ -1357,6 +1358,28 @@ class DatasetPermission(db.Model):  # type: ignore[name-defined]
     created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
     created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
 
 
 
 
+class DatasetPermissionAll(db.Model):  # type: ignore[name-defined]
+    __tablename__ = "dataset_permissions_all"
+    __table_args__ = (
+        db.PrimaryKeyConstraint("id", name="dataset_permission_pkey"),
+        db.Index("idx_dataset_permissions_dataset_id", "dataset_id"),
+        db.Index("idx_dataset_permissions_account_id", "account_id"),
+        db.Index("idx_dataset_permissions_tenant_id", "tenant_id"),
+    )
+
+    id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"), primary_key=True)
+    dataset_id = db.Column(StringUUID, nullable=False)
+    account_id = db.Column(StringUUID, nullable=False)
+    tenant_id = db.Column(StringUUID, nullable=False)
+    has_edit_permission = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
+    has_read_permission = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
+    created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
+    created_by = created_by = db.Column(StringUUID, nullable=False)
+    updated_by = db.Column(StringUUID, nullable=True)
+    updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
+    email = db.Column(db.String(255), nullable=False)
+
+
 class ExternalKnowledgeApis(db.Model):  # type: ignore[name-defined]
 class ExternalKnowledgeApis(db.Model):  # type: ignore[name-defined]
     __tablename__ = "external_knowledge_apis"
     __tablename__ = "external_knowledge_apis"
     __table_args__ = (
     __table_args__ = (

+ 29 - 0
api/models/dept.py

@@ -0,0 +1,29 @@
+import enum
+
+from sqlalchemy import func
+from sqlalchemy.orm import Mapped, mapped_column
+
+from .engine import db
+from .types import StringUUID
+
+
+class DeptStatus(enum.StrEnum):
+    ACTIVE = "active"
+    CLOSED = "closed"
+
+
+class Dept(db.Model):
+    __tablename__ = "dept"
+    __table_args__ = db.PrimaryKeyConstraint("dept_id", name="dept_pkey")
+
+    dept_id: Mapped[str] = mapped_column(StringUUID, server_default=db.text("uuid_generate_v4()"))
+    dept_name = db.Column(db.String(255), nullable=False)
+    parent_dept_id = db.Column(db.String(255))
+    timezone = db.Column(db.String(255))
+    status = db.Column(db.String(16), nullable=False, server_default=db.text("'active'::character varying"))
+    created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
+    updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
+
+    def get_status(self) -> DeptStatus:
+        status_str = self.status
+        return DeptStatus(status_str)