use super::*;
pub(crate) fn default_sleep_time_idle_hours() -> u64 {
6
}
pub(crate) fn default_sleep_time_min_interval_hours() -> u64 {
24
}
pub(crate) fn default_sleep_time_similarity_threshold() -> f64 {
0.82
}
pub(crate) fn default_sleep_time_max_archived_per_pass() -> usize {
20
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct SleepTimeConfig {
#[serde(default)]
pub enabled: bool,
#[serde(default = "default_sleep_time_idle_hours")]
pub idle_hours: u64,
#[serde(default = "default_sleep_time_min_interval_hours")]
pub min_interval_hours: u64,
#[serde(default = "default_sleep_time_similarity_threshold")]
pub similarity_threshold: f64,
#[serde(default = "default_sleep_time_max_archived_per_pass")]
pub max_archived_per_pass: usize,
}
impl Default for SleepTimeConfig {
fn default() -> Self {
Self {
enabled: false,
idle_hours: default_sleep_time_idle_hours(),
min_interval_hours: default_sleep_time_min_interval_hours(),
similarity_threshold: default_sleep_time_similarity_threshold(),
max_archived_per_pass: default_sleep_time_max_archived_per_pass(),
}
}
}
pub(crate) fn default_heartbeat_interval_mins() -> u64 {
30
}
pub(crate) fn default_heartbeat_max_chars() -> usize {
8000
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct HeartbeatConfig {
#[serde(default)]
pub enabled: bool,
#[serde(default = "default_heartbeat_interval_mins")]
pub interval_mins: u64,
#[serde(default = "default_heartbeat_max_chars")]
pub max_chars: usize,
}
impl Default for HeartbeatConfig {
fn default() -> Self {
Self {
enabled: false,
interval_mins: default_heartbeat_interval_mins(),
max_chars: default_heartbeat_max_chars(),
}
}
}
pub(crate) fn default_idle_checkin_idle_hours() -> u64 {
24
}
pub(crate) fn default_idle_checkin_min_interval_hours() -> u64 {
24
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct IdleCheckinConfig {
#[serde(default)]
pub enabled: bool,
#[serde(default = "default_idle_checkin_idle_hours")]
pub idle_hours: u64,
#[serde(default = "default_idle_checkin_min_interval_hours")]
pub min_interval_hours: u64,
}
impl Default for IdleCheckinConfig {
fn default() -> Self {
Self {
enabled: false,
idle_hours: default_idle_checkin_idle_hours(),
min_interval_hours: default_idle_checkin_min_interval_hours(),
}
}
}
pub(crate) fn default_interjection_min_interval_secs() -> u64 {
900
}
pub(crate) fn default_interjection_lookback_mins() -> u64 {
10
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct InterjectionConfig {
#[serde(default)]
pub enabled: bool,
#[serde(default = "default_interjection_min_interval_secs")]
pub min_interval_secs: u64,
#[serde(default = "default_interjection_lookback_mins")]
pub lookback_mins: u64,
}
impl Default for InterjectionConfig {
fn default() -> Self {
Self {
enabled: false,
min_interval_secs: default_interjection_min_interval_secs(),
lookback_mins: default_interjection_lookback_mins(),
}
}
}