use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Entity {
pub name: String,
pub entity_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embedding: Option<Vec<f32>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default)]
pub mentions: u32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Relation {
pub source: String,
pub relationship: String,
pub destination: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default)]
pub mentions: u32,
#[serde(default = "default_valid")]
pub valid: bool,
}
fn default_valid() -> bool {
true
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GraphSearchResult {
pub source: String,
pub relationship: String,
pub destination: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub score: Option<f32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mentions: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_accessed_at: Option<String>,
}