pub use serde::{Deserialize, Serialize};

/// Cache configuration
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CacheConfig {
    /// Whether caching is enabled
    pub enabled: bool,
    /// Maximum cache entries
    pub max_entries: usize,
    /// Cache TTL in seconds
    pub ttl_seconds: u64,
    /// Whether to cache in memory
    pub memory_cache: bool,
    /// Whether to cache to disk
    pub disk_cache: bool,
}

impl Default for CacheConfig {
    fn default() -> Self {
        Self {
            enabled: true,
            max_entries: 1000,
            ttl_seconds: 3600, // 1 hour
            memory_cache: true,
            disk_cache: false,
        }
    }
}
