from collections.abc import Iterable from dataclasses import dataclass from anydi import singleton from dmp.app_connections.enums import AppConnectionPlatform from dmp.app_connections.services import AppConnectionService from dmp.shopify.repositories import StoreAssociationRepository @dataclass class SyncShopifyFivetranTablesStateRequest: fivetran_connection_id: str | None @singleton class SyncShopifyFivetranTablesStateHandler: def __init__( self, store_association_repository: StoreAssociationRepository, app_connection_service: AppConnectionService, ) -> None: self.store_association_repository = store_association_repository self.app_connection_service = app_connection_service def handle(self, request: SyncShopifyFivetranTablesStateRequest) -> Iterable[str]: return self.app_connection_service.sync_fivetran_tables_state( platform=AppConnectionPlatform.SHOPIFY, connection_repository=self.store_association_repository, fivetran_connection_id=request.fivetran_connection_id, )