feat: atomic wrapup, movie, integration writes

Ride writes: WrapUpRequested/Completed (wrapup create/set_complete),
MovieDiscovered (resolve upsert, new+ext id only), PosterSynced (poster
handler upsert), MovieDeleted (delete_movie), WatchEventIngested (save).
Deps drop event_publisher: wrapup, ingest, delete_review, watchlist add,
review logger.

Remaining .publish( sites:
announce-only: users/delete_account UserDeleted, person/get +
get_credits PersonEnrichmentRequested, jobs/enrichment_staleness,
http-axum search, movies/sync_poster + poster_sync_handler +
image-converter backfill + users/update_profile ImageStored (object
storage), activitypub federation_event_bridge (reacting to events).
rides write, deferred: social/execute (see report),
activitypub review_handler MovieEnrichmentRequested (after
save_remote_review).
This commit is contained in:
2026-10-26 01:02:34 +01:00
parent 2f133afb96
commit 6c295866a0
51 changed files with 1281 additions and 329 deletions

View File

@@ -90,7 +90,6 @@ pub fn build_deps(
review: repos.review.clone(),
diary: repos.diary.clone(),
movie_command: repos.movie_command.clone(),
event_publisher: services.event_publisher.clone(),
},
edit_review: EditReviewDeps {
review: repos.review.clone(),
@@ -185,7 +184,6 @@ pub fn build_deps(
webhook_token: repos.webhook_token.clone(),
watch_event_command: repos.watch_event_command.clone(),
watch_event_query: repos.watch_event_query.clone(),
event_publisher: services.event_publisher.clone(),
},
confirm_watch_events: ConfirmWatchEventsDeps {
watch_event_command: repos.watch_event_command.clone(),
@@ -313,7 +311,6 @@ pub fn build_deps(
movie_query: repos.movie_query.clone(),
metadata: services.metadata.clone(),
watchlist: repos.watchlist.clone(),
event_publisher: services.event_publisher.clone(),
},
get_watchlist_for_owner: GetWatchlistForOwnerDeps {
user: repos.user.clone(),
@@ -339,7 +336,6 @@ pub fn build_deps(
},
generate: GenerateWrapUpDeps {
wrapup_repo: repos.wrapup_repo.clone(),
event_publisher: services.event_publisher.clone(),
},
get_wrapup: GetWrapUpDeps {
wrapup_repo: repos.wrapup_repo.clone(),
@@ -387,7 +383,6 @@ pub fn build_worker_deps(
},
handle_requested: HandleWrapUpRequestedDeps {
wrapup_repo: db.wrapup_repo.clone(),
event_publisher: services.event_publisher.clone(),
wrapup_stats: db.wrapup_stats.clone(),
},
}

View File

@@ -72,7 +72,6 @@ async fn assemble(
Arc::clone(&db.review),
Arc::clone(&db.watchlist),
Arc::clone(&metadata_client),
Arc::clone(&event_publisher),
));
let repos = Repositories {

View File

@@ -215,7 +215,6 @@ async fn assemble(
Arc::new(application::jobs::WrapUpAutoGenerateJob::new(
Arc::clone(&user),
Arc::clone(&wrapup_repo),
Arc::clone(&event_publisher),
)),
Arc::new(application::jobs::WrapUpCleanupJob::new(Arc::clone(
&wrapup_repo,
@@ -277,7 +276,6 @@ async fn assemble(
let wrapup_handler = Arc::new(application::wrapup::event_handler::WrapUpEventHandler::new(
worker_deps.handle_requested.wrapup_repo.clone(),
worker_deps.handle_requested.event_publisher.clone(),
worker_deps.handle_requested.wrapup_stats.clone(),
)) as Arc<dyn EventHandler>;