feat: domain event bus for multi-client sync (issue #26, phase 2)

This commit is contained in:
2026-07-14 19:33:07 +02:00
parent 700ed79c43
commit 16f45d77b2
14 changed files with 309 additions and 10 deletions

View File

@@ -34,6 +34,7 @@ defmodule BDS.Media do
import Ecto.Query
alias BDS.Events
alias BDS.Media.Media
alias BDS.Media.Translation
alias BDS.Persistence
@@ -121,6 +122,7 @@ defmodule BDS.Media do
log_sidecar_error(write_sidecar(project, media), media.id)
log_thumbnail_error(ensure_thumbnails(project, media), media.id)
:ok = Search.sync_media(media)
:ok = Events.entity_changed("media", media.id, :created)
{:ok, media}
{:error, reason} ->
@@ -162,6 +164,7 @@ defmodule BDS.Media do
{:ok, updated_media} ->
log_sidecar_error(write_sidecar(project, updated_media), updated_media.id)
:ok = Search.sync_media(updated_media)
:ok = Events.entity_changed("media", updated_media.id, :updated)
{:ok, updated_media}
{:error, reason} ->
@@ -211,6 +214,7 @@ defmodule BDS.Media do
end)
Search.delete_media(media.id)
:ok = Events.entity_changed("media", media.id, :deleted)
{:ok, :deleted}
{:error, reason} ->