use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CodeNode {
pub id: String, pub name: String, pub kind: String, pub path: String, pub description: String, pub symbols: Vec<String>, pub hash: String, pub embedding: Vec<f32>, pub imports: Vec<String>, pub exports: Vec<String>, pub functions: Vec<FunctionInfo>, pub size_lines: u32, pub language: String, }
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FunctionInfo {
pub name: String, pub signature: String, pub start_line: u32, pub end_line: u32, pub calls: Vec<String>, pub called_by: Vec<String>, pub parameters: Vec<String>, pub return_type: Option<String>, }
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CodeRelationship {
pub source: String, pub target: String, pub relation_type: String, pub description: String, pub confidence: f32, pub weight: f32, }
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CodeGraph {
pub nodes: HashMap<String, CodeNode>,
pub relationships: Vec<CodeRelationship>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(crate) struct BatchRelationshipResult {
pub source_id: String,
pub target_id: String,
pub relation_type: String,
pub description: String,
pub confidence: f32,
pub exists: bool,
}