"""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)."""