feat(workspace): add WorkspaceInvitation entity
- Add InvitationStatus enum (pending/accepted/declined/expired) - Add WorkspaceInvitation entity to track invitation lifecycle - Store inviter, invitee email, role, and invitation token - Track status, expiration, and acceptance time - Foundation for workspace invitation system Phase 4 Task 11/68 completed
This commit is contained in:
@@ -60,6 +60,14 @@ class WorkspaceMemberRole(StrEnum):
|
||||
VIEWER = "viewer" # 查看者(只读)
|
||||
|
||||
|
||||
class InvitationStatus(StrEnum):
|
||||
"""邀请状态"""
|
||||
PENDING = "pending" # 待处理
|
||||
ACCEPTED = "accepted" # 已接受
|
||||
DECLINED = "declined" # 已拒绝
|
||||
EXPIRED = "expired" # 已过期
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class WorkspaceMember:
|
||||
"""工作空间成员"""
|
||||
@@ -71,6 +79,21 @@ class WorkspaceMember:
|
||||
joined_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class WorkspaceInvitation:
|
||||
"""工作空间邀请"""
|
||||
id: str
|
||||
workspace_id: str
|
||||
inviter_user_id: str # 邀请人
|
||||
invitee_email: str # 被邀请人邮箱
|
||||
role: str # 邀请角色
|
||||
invitation_token: str # 邀请令牌
|
||||
status: str = "pending" # pending, accepted, declined, expired
|
||||
expires_at: datetime | None = None # 过期时间
|
||||
accepted_at: datetime | None = None # 接受时间
|
||||
created_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class Project:
|
||||
id: str
|
||||
|
||||
Reference in New Issue
Block a user