18 lines
549 B
Python
18 lines
549 B
Python
"""Abstract repository for PersonalData.
|
|
|
|
Extends SoftDeleteRepository because PersonalData directly holds PII and must
|
|
support GDPR erasure.
|
|
"""
|
|
|
|
from abc import abstractmethod
|
|
from uuid import UUID
|
|
|
|
from app.entities.personal_data import PersonalData
|
|
from app.repositories.base import SoftDeleteRepository
|
|
|
|
|
|
class PersonalDataRepository(SoftDeleteRepository[PersonalData]):
|
|
@abstractmethod
|
|
async def list_by_workspace(self, workspace_id: UUID) -> list[PersonalData]:
|
|
"""Return all non-deleted profiles in a workspace (up to 2)."""
|