//! Configuration for doc-lifecycle VAPORA adapter

use serde::{Deserialize, Serialize};
use std::path::PathBuf;

/// Plugin configuration
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PluginConfig {
    /// Enable doc-lifecycle plugin
    pub enabled: bool,

    /// Root directory for documentation
    pub docs_root: PathBuf,

    /// Mode: minimal, standard, or full
    pub mode: String,

    /// Classify on task completion
    pub auto_classify: bool,

    /// Consolidate duplicates automatically
    pub auto_consolidate: bool,

    /// Generate RAG index
    pub generate_rag_index: bool,

    /// Generate mdBook site
    pub generate_mdbook: bool,

    /// Language for documentation
    pub language: String,

    /// NATS subject for task events
    pub nats_subject: String,

    /// SurrealDB connection string
    pub surreal_url: String,
}

impl Default for PluginConfig {
    fn default() -> Self {
        Self {
            enabled: true,
            docs_root: PathBuf::from("docs"),
            mode: "standard".to_string(),
            auto_classify: true,
            auto_consolidate: true,
            generate_rag_index: true,
            generate_mdbook: true,
            language: "en".to_string(),
            nats_subject: "vapora.tasks.completed".to_string(),
            surreal_url: "surreal://localhost:8000".to_string(),
        }
    }
}
