from fastapi import Depends from src.application.abstractions import IUnitOfWork from src.application.commands import GetMeCommand, SetPhoneCommand, SetAvatarCommand, SetEncryptedMnemonicStartCommand, SetEncryptedMnemonicCompleteCommand, UpdateBankDetailsStartCommand, UpdateBankDetailsCompleteCommand, ChangePasswordStartCommand, ChangePasswordCompleteCommand, ChangeEmailStartCommand, ChangeEmailConfirmOldCommand, ChangeEmailCompleteCommand from src.application.contracts import ILogger, ICache, IQueueMessanger, IHashService, IS3 from src.presentation.dependencies.cache import get_cache from src.presentation.dependencies.logger import get_logger from src.presentation.dependencies.queue_messanger import get_rabbit from src.presentation.dependencies.security import get_hash_service from src.presentation.dependencies.s3_storage import get_s3_storage from src.presentation.dependencies.unit_of_work import get_unit_of_work def get_get_me_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), ) -> GetMeCommand: return GetMeCommand(logger=logger, unit_of_work=unit_of_work, cache=cache) def get_set_phone_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), ) -> SetPhoneCommand: return SetPhoneCommand(logger=logger, unit_of_work=unit_of_work, cache=cache) def get_set_avatar_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), s3: IS3 = Depends(get_s3_storage), ) -> SetAvatarCommand: return SetAvatarCommand(unit_of_work=unit_of_work, logger=logger, cache=cache, s3=s3) def get_set_encrypted_mnemonic_start_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), messanger: IQueueMessanger = Depends(get_rabbit), hash_service: IHashService = Depends(get_hash_service), ) -> SetEncryptedMnemonicStartCommand: return SetEncryptedMnemonicStartCommand( logger=logger, unit_of_work=unit_of_work, cache=cache, messanger=messanger, hash_service=hash_service, ) def get_set_encrypted_mnemonic_complete_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), hash_service: IHashService = Depends(get_hash_service), ) -> SetEncryptedMnemonicCompleteCommand: return SetEncryptedMnemonicCompleteCommand( logger=logger, unit_of_work=unit_of_work, cache=cache, hash_service=hash_service, ) def get_change_password_start_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), messanger: IQueueMessanger = Depends(get_rabbit), hash_service: IHashService = Depends(get_hash_service), ) -> ChangePasswordStartCommand: return ChangePasswordStartCommand( logger=logger, unit_of_work=unit_of_work, cache=cache, messanger=messanger, hash_service=hash_service, ) def get_change_password_complete_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), hash_service: IHashService = Depends(get_hash_service), ) -> ChangePasswordCompleteCommand: return ChangePasswordCompleteCommand( logger=logger, unit_of_work=unit_of_work, cache=cache, hash_service=hash_service, ) def get_change_email_start_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), messanger: IQueueMessanger = Depends(get_rabbit), hash_service: IHashService = Depends(get_hash_service), ) -> ChangeEmailStartCommand: return ChangeEmailStartCommand( logger=logger, unit_of_work=unit_of_work, cache=cache, messanger=messanger, hash_service=hash_service, ) def get_change_email_confirm_old_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), messanger: IQueueMessanger = Depends(get_rabbit), hash_service: IHashService = Depends(get_hash_service), ) -> ChangeEmailConfirmOldCommand: return ChangeEmailConfirmOldCommand( logger=logger, unit_of_work=unit_of_work, cache=cache, messanger=messanger, hash_service=hash_service, ) def get_change_email_complete_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), hash_service: IHashService = Depends(get_hash_service), ) -> ChangeEmailCompleteCommand: return ChangeEmailCompleteCommand( logger=logger, unit_of_work=unit_of_work, cache=cache, hash_service=hash_service, ) def get_update_bank_details_start_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), messanger: IQueueMessanger = Depends(get_rabbit), hash_service: IHashService = Depends(get_hash_service), ) -> UpdateBankDetailsStartCommand: return UpdateBankDetailsStartCommand( logger=logger, unit_of_work=unit_of_work, cache=cache, messanger=messanger, hash_service=hash_service, ) def get_update_bank_details_complete_command( logger: ILogger = Depends(get_logger), unit_of_work: IUnitOfWork = Depends(get_unit_of_work), cache: ICache = Depends(get_cache), hash_service: IHashService = Depends(get_hash_service), ) -> UpdateBankDetailsCompleteCommand: return UpdateBankDetailsCompleteCommand( logger=logger, unit_of_work=unit_of_work, cache=cache, hash_service=hash_service, )