#[derive(Debug, Clone)]
pub struct TimeBasedMCConfig {
pub enabled: bool,
pub gap_threshold_minutes: u64,
pub keep_recent: usize,
}
impl Default for TimeBasedMCConfig {
fn default() -> Self {
Self {
enabled: true,
gap_threshold_minutes: 60,
keep_recent: 5,
}
}
}
pub fn get_time_based_mc_config() -> TimeBasedMCConfig {
let mut config = TimeBasedMCConfig::default();
if let Ok(val) = std::env::var("AI_MC_GAP_THRESHOLD_MINUTES") {
if let Ok(parsed) = val.parse::<u64>() {
if parsed > 0 {
config.gap_threshold_minutes = parsed;
}
}
}
if let Ok(val) = std::env::var("AI_MC_KEEP_RECENT") {
if let Ok(parsed) = val.parse::<usize>() {
if parsed > 0 {
config.keep_recent = parsed;
}
}
}
config
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_default_config() {
let config = TimeBasedMCConfig::default();
assert!(config.enabled);
assert_eq!(config.gap_threshold_minutes, 60);
assert_eq!(config.keep_recent, 5);
}
#[test]
fn test_get_time_based_mc_config() {
let config = get_time_based_mc_config();
assert!(config.enabled);
assert!(config.gap_threshold_minutes > 0);
assert!(config.keep_recent > 0);
}
}