// Example script demonstrating the use of Business module operations // Custom repeat function since Rhai doesn't have a built-in repeat method fn repeat_str(str, count) { let result = ""; for i in 0..count { result += str; } return result; } // Print a section header fn print_section(title) { let line = repeat_str("=", 50); print(line); print(" " + title); print(line); } print_section("BUSINESS MODULE OPERATIONS EXAMPLE"); // Currency Operations print_section("CURRENCY OPERATIONS"); // Create a currency print("\nCreating currencies..."); let usd = create_currency(100.0, "USD"); print("USD Currency created: " + usd.amount + " " + usd.currency_code); // Convert currencies print("\nConverting currencies..."); let eur = create_currency(150.0, "EUR"); print("EUR Currency created: " + eur.amount + " " + eur.currency_code); let eur_to_usd = convert_currency(eur, "USD"); print("EUR to USD: " + eur.amount + " EUR = " + eur_to_usd.amount + " USD"); // Product Component Operations print_section("PRODUCT COMPONENT OPERATIONS"); // Create a product component print("\nCreating product components..."); let component1 = create_product_component(1, "CPU", "Intel i7 Processor", 1); print("Component created: " + component1.name); print(" ID: " + component1.id); print(" Description: " + component1.description); print(" Quantity: " + component1.quantity); // Create another component let component2 = create_product_component(2, "RAM", "32GB DDR4 Memory", 2); print("Component created: " + component2.name); print(" ID: " + component2.id); print(" Description: " + component2.description); print(" Quantity: " + component2.quantity); // Product Operations print_section("PRODUCT OPERATIONS"); // Create a product using builder pattern print("\nCreating a product..."); let product = create_product_builder() .product_name("High-End Gaming PC") .product_description("Ultimate gaming experience") .product_price(create_currency(1999.99, "USD")) .product_validity_days(365) .build(); print("Product created: " + product.name); print(" ID: " + product.id); print(" Description: " + product.description); print(" Price: " + product.price.amount + " " + product.price.currency_code); // Add components to the product print("\nAdding components to product..."); let product_with_components = product .add_component(component1) .add_component(component2); print("Components added to product"); // Get components from the product let components = get_product_components(product_with_components); print("Number of components: " + components.len()); // Customer Operations print_section("CUSTOMER OPERATIONS"); // Create a customer print("\nCreating a customer..."); let customer = create_customer("John Doe", "john@example.com", "+1234567890", "123 Main St"); print("Customer created: " + customer.name); print(" Email: " + customer.email); print(" Phone: " + customer.phone); print(" Address: " + customer.address); // Sale Operations print_section("SALE OPERATIONS"); // Create a sale print("\nCreating a sale..."); let sale = create_sale(customer, "2025-04-19"); print("Sale created for customer: " + sale.customer.name); print(" Date: " + sale.date); // Add product to sale let sale_with_item = add_sale_item(sale, product_with_components, 1); print("Added product to sale: " + product_with_components.name); // Service Operations print_section("SERVICE OPERATIONS"); // Create a service print("\nCreating a service..."); let service = create_service( "Premium Support", "24/7 Technical Support", create_currency(49.99, "USD"), 30 ); print("Service created: " + service.name); print(" Description: " + service.description); print(" Price: " + service.price.amount + " " + service.price.currency_code); print(" Duration: " + service.duration + " days"); // Contract Operations print_section("CONTRACT OPERATIONS"); // Create a contract print("\nCreating a contract..."); let contract = create_contract( "Support Agreement", "Annual support contract", "2025-04-19", "2026-04-19", create_currency(599.99, "USD"), "Active" ); print("Contract created: " + contract.title); print(" Description: " + contract.description); print(" Start Date: " + contract.start_date); print(" End Date: " + contract.end_date); print(" Value: " + contract.value.amount + " " + contract.value.currency_code); print(" Status: " + contract.status); // Invoice Operations print_section("INVOICE OPERATIONS"); // Create an invoice print("\nCreating an invoice..."); let invoice = create_invoice( "INV-2025-001", "2025-04-19", "2025-05-19", customer, create_currency(2499.99, "USD"), "Issued", "Pending" ); print("Invoice created: " + invoice.number); print(" Date: " + invoice.date); print(" Due Date: " + invoice.due_date); print(" Customer: " + invoice.customer.name); print(" Amount: " + invoice.amount.amount + " " + invoice.amount.currency_code); print(" Status: " + invoice.status); print(" Payment Status: " + invoice.payment_status); print_section("EXAMPLE COMPLETED"); print("All business module operations completed successfully!");