use super::theme::ThemeConfig;

/// User and runtime settings.
#[derive(Debug, Clone)]
pub struct Settings {
    pub repo_path: String,
    pub theme: String,
    pub keymap: String,
    pub theme_config: ThemeConfig,
    pub pull_timeout_secs: u64,
    pub rebase_timeout_secs: u64,
    pub font_family: Option<String>,
    pub font_size: Option<u16>,
    pub editor_command: Option<String>,
    pub commit_template: Option<String>,
    pub custom_commands: std::collections::HashMap<String, String>,
}

impl Default for Settings {
    fn default() -> Self {
        Self {
            repo_path: ".".to_string(),
            theme: "dark".to_string(),
            keymap: "default".to_string(),
            theme_config: ThemeConfig::default(),
            pull_timeout_secs: 30,
            rebase_timeout_secs: 30,
            font_family: None,
            font_size: None,
            editor_command: None,
            commit_template: None,
            custom_commands: std::collections::HashMap::new(),
        }
    }
}
