feat: real XMP sidecar adapter, replaces LogSidecarWriter stubs

- adapters-sidecar: XmpSidecarWriter using xmp_toolkit
- Writes StructuredData → XMP with EXIF/DC/XMP namespace routing
- Reads XMP back to StructuredData
- Wired into bootstrap + worker, deleted both LogSidecarWriter stubs
This commit is contained in:
2026-05-31 21:05:46 +02:00
parent d379f3d3c8
commit f85c0cb246
12 changed files with 304 additions and 53 deletions

View File

@@ -9,13 +9,12 @@ use application::sidecar::{
};
use presentation::state::SidecarHandlers;
use crate::log_sidecar_writer::LogSidecarWriter;
pub fn build(pool: &PgPool) -> SidecarHandlers {
let metadata_repo = Arc::new(PostgresAssetMetadataRepository::new(pool.clone()));
let asset_repo = Arc::new(PostgresAssetRepository::new(pool.clone()));
let sidecar_repo = Arc::new(PostgresSidecarRepository::new(pool.clone()));
let sidecar_writer: Arc<LogSidecarWriter> = Arc::new(LogSidecarWriter);
let sidecar_writer: Arc<adapters_sidecar::XmpSidecarWriter> =
Arc::new(adapters_sidecar::XmpSidecarWriter);
let export = Arc::new(ExportSidecarHandler::new(
metadata_repo.clone(),