import sqlalchemy as sa from dmp.adapters.db import ReportingRepository from dmp.audiences.dtos import AudienceCriteria from dmp.audiences.models import AudienceTextFan class AudienceTextFanRepository(ReportingRepository[AudienceTextFan]): def delete_by_audience_id(self, audience_id: str) -> None: query = sa.delete(AudienceTextFan).where( AudienceTextFan.audience_id == audience_id ) self.db.session.execute(query) def insert_bulk(self, audience_id: str, criteria: AudienceCriteria) -> int: query = self.db.query_from_template( "audience-text-fan/insert-bulk.sql", context={ "audience_id": audience_id, **criteria.get_context(), }, ) result = self.db.session.connection().execute(query) return result.rowcount