Replace entire repo content with shahikitchen-v1-prodcution.zip (v1.1 production)

This commit is contained in:
root
2026-06-25 13:44:21 +00:00
parent 284dcfa120
commit 6cd5aaa048
850 changed files with 15616 additions and 26143 deletions
+66
View File
@@ -0,0 +1,66 @@
import type { CateringPackage } from './entities';
/**
* Catering packages — price per head in SEK (kr).
* Dish IDs reference domain/catering/dish-catalog.ts.
*/
export const cateringPackages: CateringPackage[] = [
{
id: 'silver',
name: 'Silver Package',
description:
'A refined introduction to Shahi catering — one signature curry, dal, rice, naan and fresh salad. Ideal for office lunches and intimate gatherings.',
pricePerHead: 189,
currency: 'SEK',
includedDishes: [
'butter-chicken',
'dal',
'plain-rice',
'naan',
'salad',
],
image: 'butter-chicken.jpg',
},
{
id: 'gold',
name: 'Gold Package',
description:
'Our most popular celebration menu — biryani, two curries, a vegetarian classic, rice, naan, raita and salad. Perfect for weddings and family events.',
pricePerHead: 249,
currency: 'SEK',
includedDishes: [
'chicken-biryani',
'butter-chicken',
'lamb-karahi',
'palak-paneer',
'plain-rice',
'naan',
'raita',
'salad',
],
image: 'chicken-biryani.jpg',
highlight: true,
},
{
id: 'royal',
name: 'Royal Shahi Package',
description:
'The full Shahi experience — biryani, tikka masala, premium lamb, seekh kebab, paneer, dal, and complete sides. For grand occasions that demand royalty.',
pricePerHead: 329,
currency: 'SEK',
includedDishes: [
'chicken-biryani',
'chicken-tikka-masala',
'butter-chicken',
'lamb-korma',
'seekh-kebab',
'shahi-paneer',
'dal',
'plain-rice',
'naan',
'raita',
'salad',
],
image: 'lamm-karahi.jpg',
},
];
+69
View File
@@ -0,0 +1,69 @@
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;
}
+25
View File
@@ -0,0 +1,25 @@
export type CateringDishCategory =
| 'lamb'
| 'chicken'
| 'beef'
| 'vegetarian'
| 'sides';
export interface CateringDish {
id: string;
name: string;
category: CateringDishCategory;
/** Optional link to an existing menu poster in /public/images/dishes/ */
image?: string;
}
export interface CateringPackage {
id: string;
name: string;
description: string;
pricePerHead: number;
currency: 'SEK';
includedDishes: string[];
image?: string;
highlight?: boolean;
}