diff --git a/app/models/workspace.py b/app/models/workspace.py index c380a06..61b057a 100644 --- a/app/models/workspace.py +++ b/app/models/workspace.py @@ -19,9 +19,18 @@ class WorkspaceMember(Base, AutoID): 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 为空,因为被邀请的人可能还没注册系统,我们先记录他的邮箱 + 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' (普通用户) 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())