from campaign_ads.repository import CampaignAdsRepository from campaigns.repositories.campaigns_repository import CampaignsRepository from campaign_ads.schemas import CampaignAdsQueryParams, CampaignAdsResponse, CampaignAdsSchema class CampaignAdsService: campaign_ads_repository = CampaignAdsRepository() campaigns_repository = CampaignsRepository() def get_campaign_ads(self, campaign_uuid: str, params: CampaignAdsQueryParams) -> CampaignAdsResponse: total_count = self.campaign_ads_repository.get_filtered_campaign_ads_count(campaign_uuid, params) currency = self.campaigns_repository.get_currency(campaign_uuid) items = [ CampaignAdsSchema(campaign_ad=resp, currency=currency) for resp in self.campaign_ads_repository.get_filtered_campaign_ads(campaign_uuid, params) ] return CampaignAdsResponse(items=items, limit=params.limit, offset=params.offset, total=total_count)