Initial commit
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
"""Abstract repository for Workspace and WorkspaceInvitation."""
|
||||
|
||||
from abc import abstractmethod
|
||||
from uuid import UUID
|
||||
|
||||
from app.entities.workspace import Workspace
|
||||
from app.entities.workspace_invitation import WorkspaceInvitation
|
||||
from app.repositories.base import Repository
|
||||
|
||||
|
||||
class WorkspaceRepository(Repository[Workspace]):
|
||||
pass # CRUD is sufficient; no entity-specific queries needed yet
|
||||
|
||||
|
||||
class WorkspaceInvitationRepository(Repository[WorkspaceInvitation]):
|
||||
@abstractmethod
|
||||
async def get_by_token_hash(self, token_hash: str) -> WorkspaceInvitation | None:
|
||||
"""Look up a pending invitation by the hash of the raw token."""
|
||||
|
||||
@abstractmethod
|
||||
async def list_by_workspace(
|
||||
self, workspace_id: UUID, status: str | None = None
|
||||
) -> list[WorkspaceInvitation]:
|
||||
"""Return invitations for a workspace, optionally filtered by status."""
|
||||
Reference in New Issue
Block a user