Files
flatrender/backend/contracts/events/content.yaml
T

62 lines
2.2 KiB
YAML
Raw Normal View History

# =====================================================================
# Content Events — published by Content Service
# =====================================================================
events:
content.template.published.v1:
routing_key: content.template.published.v1
description: A template (project_container) was published.
payload:
type: object
required: [container_id, slug, primary_mode]
properties:
container_id: { type: string, format: uuid }
tenant_id: { type: string, format: uuid, nullable: true }
slug: { type: string }
name: { type: string }
primary_mode: { type: string }
project_ids:
type: array
items: { type: string, format: uuid }
content.template.unpublished.v1:
routing_key: content.template.unpublished.v1
payload:
type: object
required: [container_id, reason]
properties:
container_id: { type: string, format: uuid }
tenant_id: { type: string, format: uuid, nullable: true }
slug: { type: string }
reason: { type: string }
content.font.installed.v1:
routing_key: content.font.installed.v1
description: Font registered as installed on render nodes.
payload:
type: object
required: [font_id, name, system_name, node_ids]
properties:
font_id: { type: string, format: uuid }
name: { type: string }
system_name: { type: string }
node_ids:
type: array
items: { type: string, format: uuid }
content.svg_preview.generated.v1:
routing_key: content.svg_preview.generated.v1
description: AI service produced an SVG color preview for a scene/project.
payload:
type: object
required: [svg_preview_id, svg_url, color_zones_count]
properties:
svg_preview_id: { type: string, format: uuid }
project_id: { type: string, format: uuid, nullable: true }
scene_id: { type: string, format: uuid, nullable: true }
svg_url: { type: string }
thumbnail_url: { type: string, nullable: true }
color_zones_count: { type: integer }
quality_score: { type: number, minimum: 0, maximum: 1 }
generated_by_ai: { type: boolean }