use std::sync::Arc; use erp_core::events::EventBus; use erp_core::health_provider::HealthDataProvider; use sea_orm::DatabaseConnection; use crate::provider::registry::ProviderRegistry; use crate::service::analysis::AnalysisService; use crate::service::cache::CacheService; use crate::service::insight_service::InsightService; use crate::service::prompt::PromptService; use crate::service::quota::QuotaService; use crate::service::risk_service::RiskService; use crate::service::suggestion::SuggestionService; use crate::service::usage::UsageService; #[derive(Clone)] pub struct AiState { pub db: DatabaseConnection, pub event_bus: EventBus, pub analysis: Arc, pub prompt: Arc, pub usage: Arc, pub suggestion: Arc, pub health_provider: Arc, pub provider_registry: Arc, pub quota: Arc, pub cache: Arc, pub risk_service: Arc, pub insight_service: Arc, }