from abc import abstractmethod
from typing import Protocol

from template_project.application.user.entity import UserId
from template_project.application.user.profile.entity import Profile


class ProfileDataGateway(Protocol):
    @abstractmethod
    async def load_by_user_id(self, user_id: UserId) -> Profile | None:
        raise NotImplementedError
