from __future__ import annotations from fastapi import Depends from src.application.abstractions import IUnitOfWork from src.application.commands import GetKycSessionCommand,PassKycCommand from src.application.contracts import IBeorgService,ILogger from src.infrastructure.config import settings from src.infrastructure.beorg import BeorgService 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), beorg_service: IBeorgService = Depends(get_beorg_service), ) -> PassKycCommand: return PassKycCommand( unit_of_work=unit_of_work, logger=logger, beorg_service=beorg_service, kyc_session_ttl_seconds=settings.KYC_SESSION_TTL_SECONDS, ) def get_kyc_session_command( unit_of_work: IUnitOfWork = Depends(get_unit_of_work), ) -> GetKycSessionCommand: return GetKycSessionCommand( unit_of_work=unit_of_work, )