use leankg::db::models::{CodeElement, Relationship};

fn main() {
    let tmp = tempfile::TempDir::new().unwrap();
    let db_path = tmp.path().join("debug_cache_test.db");
    let db = leankg::db::schema::init_db(&db_path).unwrap();
    let graph = leankg::graph::GraphEngine::new(db);

    let elem_b = CodeElement {
        qualified_name: "src/b.rs::mod_b".to_string(),
        element_type: "module".to_string(),
        name: "mod_b".to_string(),
        file_path: "src/b.rs".to_string(),
        line_start: 1,
        line_end: 10,
        language: "rust".to_string(),
        ..Default::default()
    };
    graph.insert_element(&elem_b).unwrap();
    graph
        .insert_relationship(&Relationship {
            id: None,
            source_qualified: "src/a.rs".to_string(),
            target_qualified: "src/b.rs::mod_b".to_string(),
            rel_type: "imports".to_string(),
            confidence: 1.0,
            metadata: serde_json::json!({}),
            ..Default::default()
        })
        .unwrap();

    match graph.get_dependencies("src/a.rs") {
        Ok(deps) => println!("get_dependencies returned {} elements", deps.len()),
        Err(e) => println!("get_dependencies error: {:?}", e),
    }
}
