// Examples for using the Zaz database use crate::zaz::models::*; use crate::zaz::factory::create_zaz_db; use std::path::PathBuf; use chrono::Utc; /// Run a simple example of the DB operations pub fn run_db_examples() -> Result<(), Box> { println!("Running Zaz DB examples..."); // Create a temp DB path let db_path = PathBuf::from("/tmp/zaz-examples"); std::fs::create_dir_all(&db_path)?; // Create DB instance let db = create_zaz_db(&db_path)?; // Example 1: User operations println!("\n--- User Examples ---"); let user = User::new( 1, "John Doe".to_string(), "john@example.com".to_string(), "secure123".to_string(), "Example Corp".to_string(), "User".to_string(), ); db.set(&user)?; println!("Inserted user: {}", user.name); let retrieved_user = db.get::(&user.id.to_string())?; println!("Retrieved user: {} ({})", retrieved_user.name, retrieved_user.email); // Example 2: Company operations println!("\n--- Company Examples ---"); let company = Company::new( 1, "Example Corp".to_string(), "EX123456".to_string(), Utc::now(), "12-31".to_string(), "info@example.com".to_string(), "123-456-7890".to_string(), "www.example.com".to_string(), "123 Example St, Example City".to_string(), BusinessType::Global, "Technology".to_string(), "An example company".to_string(), CompanyStatus::Active, ); db.set(&company)?; println!("Inserted company: {}", company.name); let companies = db.list::()?; println!("Found {} companies", companies.len()); // Clean up std::fs::remove_dir_all(db_path)?; Ok(()) }