use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Page {
pub id: String,
pub title: String,
pub summary: Option<String>,
pub content: String,
pub entity_id: Option<String>,
#[serde(default, alias = "domain")]
pub space: Option<String>,
pub source_memory_ids: Vec<String>,
pub version: i64,
pub status: String,
pub created_at: String,
pub last_compiled: String,
pub last_modified: String,
pub sources_updated_count: i64,
pub stale_reason: Option<String>,
pub user_edited: bool,
#[serde(default, skip_serializing_if = "is_zero_f32")]
pub relevance_score: f32,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_edited_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_edited_at: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_delta_summary: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub changelog: Option<String>,
}
fn is_zero_f32(v: &f32) -> bool {
*v == 0.0
}