use std::path::PathBuf;
use crate::config::PromptVariable;
#[derive(Debug, Clone)]
pub struct LocalFileRef {
pub raw_path: String,
pub disk_path: PathBuf,
}
#[derive(Debug, Clone)]
pub struct AttachmentInfo {
pub raw_path: String,
pub disk_path: PathBuf,
pub content_hash: String,
pub asset_key: String,
pub size_bytes: u64,
pub content_type: String,
}
pub struct DocumentInfo {
pub source_path: String,
pub slug: String,
pub legacy_slug: Option<String>,
pub title: String,
pub summary: Option<String>,
pub content: String,
pub rewritten_content: String,
pub content_hash: String,
pub metadata_hash: String,
pub access_level: String,
pub service_owner: String,
pub tags: Vec<String>,
pub parent_slug: Option<String>,
pub order: i32,
pub is_hidden: bool,
pub attachments: Vec<AttachmentInfo>,
}
#[derive(Debug)]
pub struct PromptInfo {
pub slug: String,
pub name: String,
pub description: String,
pub prompt_body: String,
pub content_hash: String,
pub metadata_hash: String,
pub access_level: String,
pub status: String,
pub owner: String,
pub tags: Vec<String>,
pub variables: Vec<PromptVariable>,
pub publish_to_mcp: bool,
pub default_primary: bool,
pub context_cost: String,
}
#[derive(Debug)]
pub struct SchemaInfo {
pub key: String,
pub name: String,
pub schema_type: String,
pub version: String,
pub status: String,
pub access_level: String,
pub service_owner: String,
pub tags: Vec<String>,
pub content: String,
pub content_hash: String,
pub metadata_hash: String,
}
pub struct ScannedDoc {
pub source_path: String,
pub slug: String,
pub legacy_slug: Option<String>,
pub title: String,
pub summary: Option<String>,
pub content: String,
pub rewritten_content: String,
pub content_hash: String,
pub metadata_hash: String,
pub access_level: String,
pub service_owner: String,
pub tags: Vec<String>,
pub parent_slug: Option<String>,
pub explicit_order: Option<i32>,
pub is_hidden: bool,
pub attachments: Vec<AttachmentInfo>,
}