// =============================================================================
// MOCK DATA - RESTAURANTS & MENUS
// =============================================================================
// Just fake data for testing. Nothing to learn here.
// =============================================================================
import type { Restaurant, Menu } from '../src/types.js';
// Keywords that match each restaurant (includes menu items)
const restaurantKeywords: Record<string, string[]> = {
'Burger Palace': ['burger', 'cheeseburger', 'bacon', 'fries', 'american'],
'BBQ Smokehouse': ['bbq', 'ribs', 'brisket', 'pulled pork', 'american'],
'Pizza Express': ['pizza', 'pepperoni', 'margherita', 'italian'],
'Mama Mia Pasta': ['pasta', 'spaghetti', 'lasagna', 'italian'],
'Sushi World': ['sushi', 'sashimi', 'roll', 'japanese'],
'Ramen House': ['ramen', 'noodles', 'japanese'],
'Taco Fiesta': ['taco', 'burrito', 'mexican', 'quesadilla'],
'Thai Garden': ['thai', 'pad thai', 'curry', 'noodles'],
'Golden Dragon': ['chinese', 'fried rice', 'lo mein', 'orange chicken'],
'Curry House': ['indian', 'curry', 'tikka', 'naan'],
};
export function getMockRestaurants(query: string, service: 'doordash' | 'ubereats' | 'grubhub'): Restaurant[] {
const mockData = [
{ name: 'Burger Palace', cuisine: 'American', rating: 4.8, deliveryTime: 25, deliveryFee: 2.99 },
{ name: 'BBQ Smokehouse', cuisine: 'American', rating: 4.7, deliveryTime: 30, deliveryFee: 3.49 },
{ name: 'Pizza Express', cuisine: 'Italian', rating: 4.6, deliveryTime: 30, deliveryFee: 3.49 },
{ name: 'Mama Mia Pasta', cuisine: 'Italian', rating: 4.8, deliveryTime: 32, deliveryFee: 3.99 },
{ name: 'Sushi World', cuisine: 'Japanese', rating: 4.9, deliveryTime: 35, deliveryFee: 4.99 },
{ name: 'Ramen House', cuisine: 'Japanese', rating: 4.6, deliveryTime: 28, deliveryFee: 3.49 },
{ name: 'Taco Fiesta', cuisine: 'Mexican', rating: 4.5, deliveryTime: 20, deliveryFee: 2.49 },
{ name: 'Thai Garden', cuisine: 'Thai', rating: 4.7, deliveryTime: 28, deliveryFee: 3.99 },
{ name: 'Golden Dragon', cuisine: 'Chinese', rating: 4.6, deliveryTime: 25, deliveryFee: 3.49 },
{ name: 'Curry House', cuisine: 'Indian', rating: 4.8, deliveryTime: 30, deliveryFee: 3.99 },
];
const queryLower = query.toLowerCase();
const filtered = mockData.filter((r) => {
if (!query) return true;
// Match restaurant name
if (r.name.toLowerCase().includes(queryLower)) return true;
// Match cuisine
if (r.cuisine.toLowerCase().includes(queryLower)) return true;
// Match keywords (menu items, food types)
const keywords = restaurantKeywords[r.name] || [];
if (keywords.some(kw => kw.includes(queryLower) || queryLower.includes(kw))) return true;
return false;
});
const prefix = service === 'doordash' ? 'dd' : service === 'ubereats' ? 'ue' : 'gh';
return filtered.map((r, idx) => ({ id: `${prefix}-${idx + 1}`, service, ...r }));
}
export function getMockMenu(restaurantId: string): Menu {
const menus: Record<string, Menu> = {
'dd-1': {
restaurantId: 'dd-1',
restaurantName: 'Burger Palace',
items: [
{ id: 'item-1', name: 'Classic Cheeseburger', description: 'Beef patty, cheese, lettuce', price: 9.99, category: 'Burgers' },
{ id: 'item-2', name: 'Bacon Burger', description: 'Beef patty, bacon, cheese', price: 11.99, category: 'Burgers' },
{ id: 'item-3', name: 'French Fries', description: 'Crispy golden fries', price: 3.99, category: 'Sides' },
],
},
'ue-1': {
restaurantId: 'ue-1',
restaurantName: 'Burger Palace',
items: [
{ id: 'item-1', name: 'Classic Cheeseburger', description: 'Beef patty, cheese, lettuce', price: 9.99, category: 'Burgers' },
{ id: 'item-2', name: 'Bacon Burger', description: 'Beef patty, bacon, cheese', price: 11.99, category: 'Burgers' },
],
},
'gh-1': {
restaurantId: 'gh-1',
restaurantName: 'Burger Palace',
items: [
{ id: 'item-1', name: 'Classic Cheeseburger', description: 'Beef patty, cheese, lettuce', price: 9.99, category: 'Burgers' },
],
},
};
return menus[restaurantId] || {
restaurantId,
restaurantName: 'Unknown',
items: [{ id: 'item-1', name: 'Sample Item', price: 9.99, category: 'Main' }],
};
}