feat(workspace): add WorkspaceMember entity with role-based access

- Add WorkspaceMemberRole enum (owner/admin/member/viewer)
- Add WorkspaceMember entity to track user membership in workspace
- Track invited_by for audit trail
- Track joined_at for membership timeline
- Foundation for multi-tenant permission system

Phase 4 Task 10/68 completed
This commit is contained in:
Xiaoxia AI
2026-06-17 01:26:43 +08:00
parent 687f4b7f7a
commit 3913c3d2d1
+19
View File
@@ -52,6 +52,25 @@ class Workspace:
created_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
class WorkspaceMemberRole(StrEnum):
"""工作空间成员角色"""
OWNER = "owner" # 所有者(创建者,唯一)
ADMIN = "admin" # 管理员(可管理成员和项目)
MEMBER = "member" # 成员(可创建和编辑项目)
VIEWER = "viewer" # 查看者(只读)
@dataclass(slots=True)
class WorkspaceMember:
"""工作空间成员"""
id: str
workspace_id: str
user_id: str
role: str # owner, admin, member, viewer
invited_by: str | None = None # 邀请人 user_id
joined_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
@dataclass(slots=True)
class Project:
id: str