#[derive(Debug, Clone)]
pub struct EnterpriseConfig {
pub max_products: usize,
pub max_employees: usize,
pub max_customers: usize,
pub product_recommendation_refresh_hours: u64,
pub skill_analysis_interval_hours: u64,
pub market_analysis_interval_hours: u64,
pub enable_real_time_customer_tracking: bool,
pub min_interaction_threshold: u32,
pub embedding_dimension: usize,
pub recommendation_config: RecommendationConfig,
}
impl Default for EnterpriseConfig {
fn default() -> Self {
Self {
max_products: 500_000,
max_employees: 50_000,
max_customers: 1_000_000,
product_recommendation_refresh_hours: 6,
skill_analysis_interval_hours: 24,
market_analysis_interval_hours: 12,
enable_real_time_customer_tracking: true,
min_interaction_threshold: 3,
embedding_dimension: 256,
recommendation_config: RecommendationConfig::default(),
}
}
}
#[derive(Debug, Clone)]
pub struct RecommendationConfig {
pub num_recommendations: usize,
pub similarity_threshold: f64,
pub diversity_factor: f64,
pub enable_collaborative_filtering: bool,
pub enable_content_based_filtering: bool,
pub enable_hybrid: bool,
pub cold_start_strategy: ColdStartStrategy,
}
impl Default for RecommendationConfig {
fn default() -> Self {
Self {
num_recommendations: 10,
similarity_threshold: 0.3,
diversity_factor: 0.2,
enable_collaborative_filtering: true,
enable_content_based_filtering: true,
enable_hybrid: true,
cold_start_strategy: ColdStartStrategy::PopularityBased,
}
}
}
#[derive(Debug, Clone)]
pub enum ColdStartStrategy {
PopularityBased,
ContentBased,
DemographicBased,
RandomSampling,
}