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.tiktok.repositories import TikTokAdReportingConnectionRepository @dataclass class SyncTikTokFivetranTablesStateRequest: fivetran_connection_id: str | None @singleton class SyncTikTokFivetranTablesStateHandler: def __init__( self, ad_reporting_connection_repository: TikTokAdReportingConnectionRepository, app_connection_service: AppConnectionService, ) -> None: self.ad_reporting_connection_repository = ad_reporting_connection_repository self.app_connection_service = app_connection_service def handle(self, request: SyncTikTokFivetranTablesStateRequest) -> Iterable[str]: return self.app_connection_service.sync_fivetran_tables_state( platform=AppConnectionPlatform.TIKTOK, connection_repository=self.ad_reporting_connection_repository, fivetran_connection_id=request.fivetran_connection_id, )