use application::processing::{EnqueueJobHandler, ExecutePipelineHandler, ProcessNextJobHandler}; use domain::ports::{EventPublisher, PluginRegistry}; use std::sync::Arc; use super::Repos; pub fn build_process_next_handler( repos: &Repos, registry: Arc, event_pub: Arc, ) -> ProcessNextJobHandler { let execute_pipeline = Arc::new(ExecutePipelineHandler::new( repos.job.clone(), repos.batch.clone(), repos.pipeline.clone(), repos.plugin.clone(), registry, event_pub, )); ProcessNextJobHandler::new(repos.job.clone(), execute_pipeline) } pub fn build_enqueue_handler( repos: &Repos, event_pub: Arc, ) -> EnqueueJobHandler { EnqueueJobHandler::new(repos.job.clone(), event_pub) }