48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from __future__ import annotations
|
|
from abc import ABC
|
|
from abc import abstractmethod
|
|
from src.application.domain.entities import UserEntity
|
|
|
|
|
|
class IUserRepository(ABC):
|
|
|
|
@abstractmethod
|
|
async def get_user_by_id(self, user_id: str) -> UserEntity:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def set_phone(self, user_id: str, phone: str) -> UserEntity:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def set_bank_details(self, user_id: str, **fields: str) -> UserEntity:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def set_encrypted_mnemonic(self, user_id: str, encrypted_mnemonic: str) -> UserEntity:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def get_password_hash(self, user_id: str) -> str:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def set_password(self, user_id: str, password_hash: str) -> UserEntity:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def set_email(self, user_id: str, email: str) -> UserEntity:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def email_exists(self, email: str) -> bool:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def get_user_by_email(self, email: str) -> UserEntity | None:
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
async def set_avatar_link(self, user_id: str, avatar_link: str | None) -> UserEntity:
|
|
raise NotImplementedError
|