fix: set creative_id nullable in placement creation

This commit is contained in:
ivannoskov
2026-01-21 23:54:16 +03:00
parent 97e41934aa
commit 09cb9f5fa9

View File

@@ -90,17 +90,20 @@ async def create_placements(
or (details.creative_id if details and details.creative_id else None)
or input.creative_id
)
if not creative_id:
raise domain.CreativeNotFound()
creative = creatives_by_id.get(creative_id)
if not creative:
creative = await self.database.get_creative(workspace_id, creative_id)
if not creative or creative.project_id != project.id:
raise domain.CreativeNotFound(creative_id)
creatives_by_id[creative_id] = creative
# Если creative_id передан, ищем и валидируем креатив
creative: domain.Creative | None = None
if creative_id:
creative = creatives_by_id.get(creative_id)
if not creative:
creative = await self.database.get_creative(workspace_id, creative_id)
if not creative or creative.project_id != project.id:
raise domain.CreativeNotFound(creative_id)
creatives_by_id[creative_id] = creative
placement = domain.Placement(
project_id=project.id,
creative_id=creative.id,
creative_id=creative.id if creative else None,
channel_id=channel.id,
invite_link=None,
invite_link_type=invite_link_type,