from typing import List, Optional from performance.services.utils_service import UtilsService class MetadataProvider: utils_service = UtilsService() def get_metadata(self, ids): pass class CampaignMetadataProvider(MetadataProvider): def __init__( self, project_dsp_id: Optional[str] = None, project_id: Optional[int] = None, is_in_project: Optional[bool] = False, ): self.project_dsp_id = project_dsp_id self.project_id = project_id self.is_in_project = is_in_project def get_metadata(self, dsp_campaign_ids: List[str]): return self.utils_service.campaign_metadata( dsp_campaign_ids, project_dsp_id=self.project_dsp_id, project_id=self.project_id, is_in_project=self.is_in_project, ) class ProjectMetadataProvider(MetadataProvider): def get_metadata(self, project_ids): return self.utils_service.gras_projects_metadata(project_ids)