from __future__ import annotations from fastapi import Depends from src.application.abstractions import IUnitOfWork from src.application.commands import CompleteKycCommand,GetKycSessionCommand,PassKycCommand from src.application.contracts import IBeorgService,ICache,ILogger from src.infrastructure.config import settings from src.infrastructure.beorg import BeorgService from src.presentation.dependencies.cache import get_cache from src.presentation.dependencies.logger import get_logger from src.presentation.dependencies.unit_of_work import get_unit_of_work def get_beorg_service() -> IBeorgService: return BeorgService( project_id=settings.BEORG_PROJECT_ID, machine_uid=settings.BEORG_MACHINE_UID, token=settings.BEORG_TOKEN, process_info=settings.BEORG_PROCESS_INFO, timeout=settings.BEORG_TIMEOUT, ) def get_pass_kyc_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), beorg_service: IBeorgService = Depends(get_beorg_service), ) -> PassKycCommand: return PassKycCommand( unit_of_work=unit_of_work, logger=logger, cache=cache, beorg_service=beorg_service, ) def get_kyc_session_command( unit_of_work: IUnitOfWork = Depends(get_unit_of_work), ) -> GetKycSessionCommand: return GetKycSessionCommand( unit_of_work=unit_of_work, ) def get_complete_kyc_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), beorg_service: IBeorgService = Depends(get_beorg_service), ) -> CompleteKycCommand: return CompleteKycCommand( unit_of_work=unit_of_work, logger=logger, cache=cache, beorg_service=beorg_service, )