use std::sync::Arc; use domain::ports::{ AuthService, EventPublisher, MetadataClient, MovieRepository, PasswordHasher, PosterFetcherClient, PosterStorage, UserRepository, }; use crate::config::AppConfig; #[derive(Clone)] pub struct AppContext { pub repository: Arc, pub metadata_client: Arc, pub poster_fetcher: Arc, pub poster_storage: Arc, pub event_publisher: Arc, pub auth_service: Arc, pub password_hasher: Arc, pub user_repository: Arc, pub config: AppConfig, }