use std::path::PathBuf; use std::sync::Arc; use tokio::sync::RwLock; use pinakes_core::cache::CacheLayer; use pinakes_core::config::Config; use pinakes_core::jobs::JobQueue; use pinakes_core::managed_storage::ManagedStorageService; use pinakes_core::plugin::PluginManager; use pinakes_core::scan::ScanProgress; use pinakes_core::scheduler::TaskScheduler; use pinakes_core::storage::DynStorageBackend; use pinakes_core::transcode::TranscodeService; // Note: Sessions are now stored in the database via StorageBackend // See storage::SessionData and related methods #[derive(Clone)] pub struct AppState { pub storage: DynStorageBackend, pub config: Arc>, pub config_path: Option, pub scan_progress: ScanProgress, pub job_queue: Arc, pub cache: Arc, pub scheduler: Arc, pub plugin_manager: Option>, pub transcode_service: Option>, pub managed_storage: Option>, }