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