use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OptimizationRule {
pub id: Uuid,
pub rule_description: String,
pub affected_traits: Vec<String>,
pub confidence: f64,
pub source_experiments_count: usize,
pub created_at: DateTime<Utc>,
}
impl OptimizationRule {
pub fn new(description: String, traits: Vec<String>, confidence: f64, count: usize) -> Self {
Self {
id: Uuid::new_v4(),
rule_description: description,
affected_traits: traits,
confidence: confidence.clamp(0.0, 1.0),
source_experiments_count: count,
created_at: Utc::now(),
}
}
}