use crate::config::AppConfig; use crate::core::permission_sync::PermissionSyncService; use crate::metrics::AppMetrics; use crate::models::server; use crate::repositories::Repositories; use crate::routes::gateway::GatewayManager; use event_bus::EventBus; use sea_orm::DatabaseConnection; use std::sync::{Arc, RwLock}; #[derive(Debug, Clone)] pub struct AppState { pub db: DatabaseConnection, pub config: Arc, pub repositories: Arc, pub init_token: Arc>>, pub default_server: Arc, pub metrics: AppMetrics, pub gateway: Arc, pub event_bus: Arc, } impl AppState {} #[derive(Debug, Clone)] pub struct Services { pub permission_sync: Arc, }