63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
from abc import ABC
|
|
from abc import abstractmethod
|
|
from datetime import datetime
|
|
from typing import Any
|
|
from src.application.domain.entities import KycEntity
|
|
|
|
|
|
class IKycRepository(ABC):
|
|
|
|
@abstractmethod
|
|
async def create_started_session(
|
|
self,
|
|
*,
|
|
user_id: str,
|
|
user_token: str | None,
|
|
client_user_token: str | None,
|
|
link: str | None,
|
|
qr_code: str | None,
|
|
expires_at: datetime | None,
|
|
error: str | None,
|
|
) -> None:
|
|
raise NotImplementedError
|
|
|
|
|
|
@abstractmethod
|
|
async def update_session_result(
|
|
self,
|
|
*,
|
|
user_id: str,
|
|
user_token: str,
|
|
status: str,
|
|
done_state: bool | None,
|
|
set_id: str | None,
|
|
result_data: Any,
|
|
error: str | None,
|
|
) -> None:
|
|
raise NotImplementedError
|
|
|
|
|
|
@abstractmethod
|
|
async def expire_started_sessions(self,*,user_id: str,now: datetime) -> None:
|
|
raise NotImplementedError
|
|
|
|
|
|
@abstractmethod
|
|
async def expire_all_started_sessions(self,*,now: datetime) -> None:
|
|
raise NotImplementedError
|
|
|
|
|
|
@abstractmethod
|
|
async def get_started_sessions(self,*,now: datetime,limit: int) -> list[KycEntity]:
|
|
raise NotImplementedError
|
|
|
|
|
|
@abstractmethod
|
|
async def get_active_session(self,*,user_id: str,now: datetime) -> KycEntity | None:
|
|
raise NotImplementedError
|
|
|
|
|
|
@abstractmethod
|
|
async def get_latest_session(self,*,user_id: str) -> KycEntity | None:
|
|
raise NotImplementedError
|