use std::sync::Arc; use domain::ports::{ AuthService, DiaryExporter, DiaryRepository, EventPublisher, MetadataClient, MovieRepository, PasswordHasher, PosterFetcherClient, PosterStorage, ReviewRepository, StatsRepository, UserRepository, }; use crate::config::AppConfig; #[derive(Clone)] pub struct AppContext { pub movie_repository: Arc, pub review_repository: Arc, pub diary_repository: Arc, pub diary_exporter: Arc, pub stats_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, }