Compare commits
2 Commits
00a30b05d3
...
3f79d1d85a
| Author | SHA1 | Date | |
|---|---|---|---|
| 3f79d1d85a | |||
| 1193aa9439 |
@@ -6,11 +6,18 @@ class Workspace(Base, AutoID):
|
|||||||
"""工作区表"""
|
"""工作区表"""
|
||||||
__tablename__ = "workspaces"
|
__tablename__ = "workspaces"
|
||||||
|
|
||||||
|
# --- 基础与个性化 ---
|
||||||
name = Column(String, nullable=False)
|
name = Column(String, nullable=False)
|
||||||
|
slug = Column(String, unique=True, index=True, nullable=False)
|
||||||
|
logo = Column(String, nullable=True)
|
||||||
|
description = Column(String, nullable=True)
|
||||||
|
|
||||||
# 存储容量上限(单位:字节 Bytes),默认 5GB
|
# 存储容量上限(单位:字节 Bytes),默认 5GB
|
||||||
storage_limit = Column(BigInteger, default=5 * 1024 * 1024 * 1024)
|
storage_limit = Column(BigInteger, default=5 * 1024 * 1024 * 1024)
|
||||||
|
storage_used = Column(BigInteger, default=0, nullable=False)
|
||||||
|
|
||||||
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
||||||
|
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
|
||||||
|
|
||||||
|
|
||||||
class WorkspaceMember(Base, AutoID):
|
class WorkspaceMember(Base, AutoID):
|
||||||
@@ -20,9 +27,18 @@ class WorkspaceMember(Base, AutoID):
|
|||||||
workspace_id = Column(String(32), ForeignKey("workspaces.id", ondelete="CASCADE"), index=True)
|
workspace_id = Column(String(32), ForeignKey("workspaces.id", ondelete="CASCADE"), index=True)
|
||||||
user_id = Column(String(32), ForeignKey("users.id", ondelete="CASCADE"), index=True)
|
user_id = Column(String(32), ForeignKey("users.id", ondelete="CASCADE"), index=True)
|
||||||
|
|
||||||
|
# 允许 user_id 为空,因为被邀请的人可能还没注册系统,我们先记录他的邮箱
|
||||||
|
user_id = Column(String(32), ForeignKey("users.id", ondelete="CASCADE"), nullable=True, index=True)
|
||||||
|
invite_email = Column(String, nullable=True) # 收到邀请的邮箱
|
||||||
|
|
||||||
|
# 状态:'pending' (等待加入), 'active' (已加入), 'disabled' (已禁用)
|
||||||
|
status = Column(String, default="pending", nullable=False)
|
||||||
# 角色权限:'owner' (所有者), 'admin' (管理员), 'user' (普通用户)
|
# 角色权限:'owner' (所有者), 'admin' (管理员), 'user' (普通用户)
|
||||||
role = Column(String, default="user", nullable=False)
|
role = Column(String, default="user", nullable=False)
|
||||||
|
|
||||||
|
invite_token = Column(String, nullable=True, unique=True)
|
||||||
|
token_expires_at = Column(DateTime(timezone=True), nullable=True)
|
||||||
|
|
||||||
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
||||||
|
|
||||||
# 一个用户在一个工作区只能有一条记录
|
# 一个用户在一个工作区只能有一条记录
|
||||||
|
|||||||
Reference in New Issue
Block a user