use common_contracts::config_models::{AnalysisTemplateSets, DataSourceConfig, LlmProvidersConfig};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use uuid::Uuid;

pub use common_contracts::models::*;

#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct SystemConfig {
    pub llm_providers: LlmProvidersConfig,
    pub analysis_template_sets: AnalysisTemplateSets,
    pub data_sources: HashMap<String, DataSourceConfig>,
}

#[derive(Debug, Clone, Serialize, sqlx::FromRow)]
pub struct AnalysisResult {
    pub id: i64,
    pub request_id: Uuid,
    pub symbol: String,
    pub template_id: String,
    pub module_id: String,
    pub content: String,
    pub meta_data: serde_json::Value,
    pub created_at: chrono::DateTime<chrono::Utc>,
}
