use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AlgorithmDiscoveryConfig {
pub enable_discovery: bool,
pub recommendation_engine: RecommendationEngineConfig,
pub similarity_analysis: SimilarityAnalysisConfig,
pub trend_analysis: TrendAnalysisConfig,
pub personalization_config: PersonalizationConfig,
pub discovery_algorithms: Vec<DiscoveryAlgorithm>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RecommendationEngineConfig {
pub enable_recommendations: bool,
pub algorithm_type: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SimilarityAnalysisConfig {
pub similarity_threshold: f64,
pub analysis_methods: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TrendAnalysisConfig {
pub enable_trend_analysis: bool,
pub analysis_window: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PersonalizationConfig {
pub enable_personalization: bool,
pub user_preferences: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub enum DiscoveryAlgorithm {
HybridRecommendation,
GraphBasedDiscovery,
MachineLearningDiscovery,
ContentBasedFiltering,
CollaborativeFiltering,
SemanticSearch,
PerformanceBased,
}