from sqlalchemy import Column, DateTime, String, ForeignKey, BigInteger, UniqueConstraint from sqlalchemy.sql import func from .base import AutoID, Base class Workspace(Base, AutoID): """工作区表""" __tablename__ = "workspaces" name = Column(String, nullable=False) # 存储容量上限(单位:字节 Bytes),默认 5GB storage_limit = Column(BigInteger, default=5 * 1024 * 1024 * 1024) created_at = Column(DateTime(timezone=True), server_default=func.now()) class WorkspaceMember(Base, AutoID): """工作区成员及权限表""" __tablename__ = "workspace_members" workspace_id = Column(String(32), ForeignKey("workspaces.id", ondelete="CASCADE"), index=True) user_id = Column(String(32), ForeignKey("users.id", ondelete="CASCADE"), index=True) # 角色权限:'owner' (所有者), 'admin' (管理员), 'user' (普通用户) role = Column(String, default="user", nullable=False) created_at = Column(DateTime(timezone=True), server_default=func.now()) # 一个用户在一个工作区只能有一条记录 __table_args__ = ( UniqueConstraint("workspace_id", "user_id", name="uq_workspace_user"), )