Files
shahikitchen-prod/domain/catering/dish-catalog.ts
T

69 lines
2.9 KiB
TypeScript

import type { CateringDish, CateringDishCategory } from './entities';
/**
* Master catalog of dishes available for catering packages.
* IDs match the catering brief exactly.
*/
export const CATERING_DISH_CATALOG: CateringDish[] = [
// Lamb
{ id: 'lamb-vindaloo', name: 'Lamb Vindaloo', category: 'lamb', image: 'lamm-vindaloo.jpg' },
{ id: 'lamb-karahi', name: 'Lamb Karahi', category: 'lamb', image: 'lamm-karahi.jpg' },
{ id: 'lamb-korma', name: 'Lamb Korma', category: 'lamb', image: 'lamm-rogan-josh.jpg' },
{ id: 'lamb-achari', name: 'Lamb Achari', category: 'lamb', image: 'lamm-vindaloo.jpg' },
// Chicken
{ id: 'chicken-tikka-masala', name: 'Chicken Tikka Masala', category: 'chicken', image: 'chicken-tikka.jpg' },
{ id: 'butter-chicken', name: 'Butter Chicken', category: 'chicken', image: 'butter-chicken.jpg' },
{ id: 'chicken-korma', name: 'Chicken Korma', category: 'chicken', image: 'butter-chicken.jpg' },
{ id: 'chicken-karahi', name: 'Chicken Karahi', category: 'chicken', image: 'chicken-karahi.jpg' },
{ id: 'chicken-achari', name: 'Chicken Achari', category: 'chicken', image: 'chicken-karahi.jpg' },
{ id: 'chicken-biryani', name: 'Chicken Biryani', category: 'chicken', image: 'chicken-biryani.jpg' },
// Beef
{ id: 'shami-kebab', name: 'Shami Kebab', category: 'beef', image: 'shami-sandwich.jpg' },
{ id: 'seekh-kebab', name: 'Seekh Kebab', category: 'beef', image: 'kebab-roll.jpg' },
{ id: 'beef-karahi', name: 'Beef Karahi', category: 'beef', image: 'bong-nihari.jpg' },
// Vegetarian
{ id: 'dal', name: 'Dal', category: 'vegetarian', image: 'daal-makhani.jpg' },
{ id: 'palak-paneer', name: 'Palak Paneer', category: 'vegetarian', image: 'palak-paneer.jpg' },
{ id: 'shahi-paneer', name: 'Shahi Paneer', category: 'vegetarian', image: 'shahi-paneer.jpg' },
{ id: 'sabzi', name: 'Sabzi', category: 'vegetarian', image: 'lahore-chana.jpg' },
// Sides
{ id: 'plain-rice', name: 'Plain Rice', category: 'sides', image: 'chicken-biryani.jpg' },
{ id: 'naan', name: 'Naan', category: 'sides', image: 'keema-naan.jpg' },
{ id: 'salad', name: 'Salad', category: 'sides', image: 'chana-chaat.jpg' },
{ id: 'raita', name: 'Raita', category: 'sides', image: 'mango-lassi.jpg' },
];
export const CATERING_CATEGORY_ORDER: CateringDishCategory[] = [
'lamb',
'chicken',
'beef',
'vegetarian',
'sides',
];
export function getCateringDishById(id: string): CateringDish | undefined {
return CATERING_DISH_CATALOG.find((d) => d.id === id);
}
export function groupDishesByCategory(
dishIds: string[]
): Record<CateringDishCategory, CateringDish[]> {
const grouped: Record<CateringDishCategory, CateringDish[]> = {
lamb: [],
chicken: [],
beef: [],
vegetarian: [],
sides: [],
};
for (const id of dishIds) {
const dish = getCateringDishById(id);
if (dish) grouped[dish.category].push(dish);
}
return grouped;
}