import sqlalchemy as sa from sqlalchemy.orm import joinedload from dmp.adapters.db import Repository from dmp.audiences.models import AudienceExport class AudienceExportRepository(Repository[AudienceExport]): default_options = [joinedload(AudienceExport.audience)] def get_by_id_and_audience_id( self, export_id: str, audience_id: str ) -> AudienceExport | None: query = ( sa.select(AudienceExport) .where( sa.and_( AudienceExport.id == export_id, AudienceExport.audience_id == audience_id, ) ) .options(*self.default_options) ) result = self.db.session.execute(query) return result.scalars().one_or_none()