import sqlalchemy as sa from campaigns.assets.models import Asset from campaigns.connectors.db import Repository class AssetRepository(Repository[Asset]): async def get_or_none(self, *, asset_id: str) -> Asset | None: query = sa.select(Asset).where( sa.or_(Asset.id == asset_id, Asset.key == asset_id) ) result = await self.db.session.execute(query) return result.scalars().one_or_none()