Files
shanxia2.0/backend/app/models/doclib.py
T

52 lines
2.2 KiB
Python

"""门户私有文档库:目录、文件元数据和按用户分享。"""
from datetime import datetime
from sqlalchemy import BigInteger, Column, DateTime, Index, Integer, SmallInteger, String, UniqueConstraint
from app.core.database import Base
class _PublicFields:
tenant_no = Column(String(64), nullable=False)
order_num = Column(Integer, nullable=True)
remark = Column(String(512), nullable=True)
create_by = Column(String(64), nullable=False)
create_dept_id = Column(String(64), nullable=False, default='')
create_time = Column(DateTime, nullable=False, default=datetime.now)
update_by = Column(String(64), nullable=True)
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now)
del_flag = Column(SmallInteger, nullable=False, default=0)
class DoclibFolder(_PublicFields, Base):
__tablename__ = 'biz_doclib_folder'
__table_args__ = (Index('ix_doclib_folder_owner', 'tenant_no', 'create_by', 'parent_id', 'del_flag'),)
id = Column(String(64), primary_key=True)
name = Column(String(120), nullable=False)
parent_id = Column(String(64), nullable=False, default='')
class DoclibFile(_PublicFields, Base):
__tablename__ = 'biz_doclib_file'
__table_args__ = (
Index('ix_doclib_file_owner', 'tenant_no', 'create_by', 'del_flag', 'create_time'),
Index('ix_doclib_file_folder', 'tenant_no', 'folder_id', 'del_flag'),
)
id = Column(String(64), primary_key=True)
name = Column(String(255), nullable=False)
folder_id = Column(String(64), nullable=False, default='')
size = Column(BigInteger, nullable=False)
content_type = Column(String(255), nullable=False, default='application/octet-stream')
object_key = Column(String(512), nullable=False)
class DoclibShare(_PublicFields, Base):
__tablename__ = 'biz_doclib_share'
__table_args__ = (
UniqueConstraint('tenant_no', 'file_id', 'user_id', name='uk_doclib_share_user'),
Index('ix_doclib_share_recipient', 'tenant_no', 'user_id', 'del_flag', 'file_id'),
)
id = Column(String(64), primary_key=True)
file_id = Column(String(64), nullable=False)
user_id = Column(String(64), nullable=False)