use crate::pdf::simple_writer::SimplePdfWriter;
use crate::vault::vault_structs::VaultPayload;
use chrono::{DateTime, Utc};
pub fn export_vault_as_pdf(payload: &VaultPayload, output_path: &str) -> Result<(), String> {
let md = &payload.metadata;
let created_at: DateTime<Utc> = md
.created_at
.parse()
.map_err(|_| "Invalid created_at datetime".to_string())?;
let creator = md.creator_name.as_str();
let fingerprint = md.system_fingerprint.as_str();
let tone = md.tone_classification.as_deref().unwrap_or("unknown");
let intent = md.intent_classification.as_deref().unwrap_or("unknown");
let reem = md.reem_code.as_deref().unwrap_or("REEM-XXX");
let cia = md.cia_hash.as_deref().unwrap_or("CIA-UNKNOWN");
let header = format!(
"🔒 Vault Creator: {creator}
Created At: {created_at}
System Fingerprint: {fingerprint}
Tone: {tone}
Intent: {intent}
REEM Code: {reem}
CIA Hash: {cia}
Encrypted Vault Memory:
"
);
let mut pdf =
SimplePdfWriter::new("Vault Contract Export", 11.0_f32, (20.0, 20.0, 20.0, 20.0))?;
pdf.write_wrapped(&header);
pdf.write_wrapped(&payload.content);
pdf.save(output_path)
}