use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SchedulerConfig {
pub enabled: bool,
pub default_cron: String,
pub channel_size: usize,
}
impl Default for SchedulerConfig {
fn default() -> Self {
Self {
enabled: false,
default_cron: "0 0 * * * *".to_string(),
channel_size: 200,
}
}
}
impl SchedulerConfig {
pub fn validate(&self) -> Result<(), String> {
if self.enabled && self.default_cron.trim().is_empty() {
return Err("default_cron must not be empty when scheduler is enabled".to_string());
}
if self.channel_size == 0 {
return Err("channel_size must be greater than 0".to_string());
}
Ok(())
}
}