// Data objects for Tera template integration // This script defines complex objects that can be accessed from Tera templates // Create a products catalog object fn create_products() { let products = [ #{ id: 1, name: "Laptop", price: 1299.99, features: [ "16GB RAM", "512GB SSD", "Intel i7 processor" ], available: true }, #{ id: 2, name: "Smartphone", price: 899.99, features: [ "6.7 inch display", "128GB storage", "12MP camera" ], available: true }, #{ id: 3, name: "Tablet", price: 499.99, features: [ "10.9 inch display", "64GB storage", "A14 chip" ], available: false }, #{ id: 4, name: "Headphones", price: 249.99, features: [ "Noise cancellation", "Wireless", "20h battery life" ], available: true } ]; products } // Get all products fn get_products() { create_products() } // Get available products only fn get_available_products() { let all_products = create_products(); let available = []; for product in all_products { if product.available { available.push(product); } } available } // Get a specific product by ID fn get_product_by_id(id) { let products = create_products(); // Convert ID to integer to ensure type compatibility let search_id = id.to_int(); for product in products { if product.id == search_id { return product; } } #{} // Return empty object if not found } // Calculate total price of all products fn calculate_total_price() { let products = create_products(); let total = 0.0; for product in products { total += product.price; } total } // Format price with currency symbol fn format_price(price) { "$" + price.to_string() } // Get all product features as a flattened array fn get_all_features() { let products = create_products(); let all_features = []; for product in products { for feature in product.features { all_features.push(feature); } } all_features } // Get a user object fn get_user() { #{ name: "John Doe", email: "john@example.com", role: "admin", settings: #{ theme: "dark", notifications: true, language: "en" }, orders: [ #{ id: "ORD-001", date: "2025-03-25", total: 1299.99 }, #{ id: "ORD-002", date: "2025-04-01", total: 249.99 } ] } }