// Menu Data Manager
let menuData = {};
// Load menu data from JSON file
async function loadMenuData() {
try {
const response = await fetch('data/menu.json');
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
menuData = await response.json();
console.log('Menu data loaded successfully');
return menuData;
} catch (error) {
console.error('Error loading menu data:', error);
// Fallback to empty data structure
menuData = {
coffee: [],
tea: [],
smoothie: [],
dessert: []
};
return menuData;
}
}
// Get all menu items
function getAllMenuItems() {
return [
...menuData.coffee,
...menuData.tea,
...menuData.smoothie,
...menuData.dessert
];
}
// Get menu items by category
function getMenuByCategory(category) {
if (category === 'all') {
return getAllMenuItems();
}
return menuData[category] || [];
}
// Get single menu item by id
function getMenuItemById(id) {
const allItems = getAllMenuItems();
return allItems.find(item => item.id === parseInt(id));
}
// Get price with size adjustment
function getPriceWithSize(basePrice, size) {
const sizeMultipliers = {
'S': 1,
'M': 1.2,
'L': 1.4
};
return Math.round(basePrice * (sizeMultipliers[size] || 1));
}