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 WorkflowHistory {
    pub request_id: Uuid,
    pub symbol: String,
    pub market: String,
    pub template_id: Option<String>,
    pub status: String,
    pub start_time: chrono::DateTime<chrono::Utc>,
    pub end_time: Option<chrono::DateTime<chrono::Utc>>,
    pub snapshot_data: serde_json::Value,
    pub created_at: chrono::DateTime<chrono::Utc>,
}


