Files
F-r-ldraledigplannerare/backend/app/entities/workspace_invitation.py
T
2026-06-01 16:48:21 +02:00

23 lines
665 B
Python

"""Domain entity: WorkspaceInvitation (single-use partner invite).
token_hash stores SHA-256(raw_token). The raw token is returned to the caller
once and never persisted. Redemption compares SHA-256(presented_token) against
this hash.
"""
from dataclasses import dataclass
from datetime import datetime
from uuid import UUID
@dataclass
class WorkspaceInvitation:
id: UUID
workspace_id: UUID
token_hash: str # SHA-256 of the one-time token; raw token never stored
invited_by_user_id: UUID
status: str # 'pending' | 'accepted' | 'revoked' | 'expired'
expires_at: datetime
created_at: datetime
accepted_at: datetime | None = None