use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct WebUiConfig {
#[serde(default)]
pub enabled: bool,
#[serde(default = "default_web_ui_prefix")]
pub path_prefix: String,
}
pub fn normalize_web_ui_prefix(prefix: &str) -> String {
let trimmed = prefix.trim();
if trimmed.is_empty() || trimmed == "/" {
return "/admin".to_string();
}
let with_leading = if trimmed.starts_with('/') {
trimmed.to_string()
} else {
format!("/{trimmed}")
};
with_leading.trim_end_matches('/').to_string()
}
fn default_web_ui_prefix() -> String {
"/admin".to_string()
}