import logging from typing import TYPE_CHECKING from src import domain, dto if TYPE_CHECKING: from .. import Usecase log = logging.getLogger(__name__) async def get_creative(self: 'Usecase', input: dto.GetCreativeInput) -> dto.CreativeOutput: creative = await self.database.get_creative(input.user_id, input.creative_id) if not creative: log.warning('User %s attempted to access unavailable creative %s', input.user_id, input.creative_id) raise domain.CreativeNotFound(input.creative_id) return dto.CreativeOutput( id=creative.id, name=creative.name, text=creative.text, target_channel_id=creative.target_channel_id, target_channel_title=creative.target_channel.title, created_at=creative.created_at, status=creative.status, placements_count=creative.placements_count, )