Files
users/src/application/abstractions/repositories/i_user_repository.py
2026-05-19 15:23:22 +03:00

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