from sqlalchemy.orm import joinedload, selectinload from campaigns.connectors.db import Repository from campaigns.meta.models import Campaign, CampaignImage, CampaignVideo class CampaignRepository(Repository[Campaign]): default_options = ( joinedload(Campaign.facebook_page, innerjoin=True), joinedload(Campaign.targeting_audience), joinedload(Campaign.engagement_audience), selectinload(Campaign.images).joinedload(CampaignImage.asset), selectinload(Campaign.videos).joinedload(CampaignVideo.asset), )