'use client'; import { dishImageUrl } from '@/lib/assets'; import type { CateringPackage } from '@/lib/catering-data'; import { CATERING_CATEGORY_ORDER, groupDishesByCategory, } from '@/lib/catering-data'; import { buildCateringPackagePricingMessage } from '@/application/messaging/whatsapp-message-builder'; import { container } from '@/infrastructure/di/container'; import { getWhatsAppInquiryTranslation } from '@/application/messaging/inquiry-language'; import { useLanguage } from '@/lib/language-context'; import { getTranslation } from '@/lib/translations'; import { MessageCircle, Users, UtensilsCrossed } from 'lucide-react'; import { motion } from 'framer-motion'; interface CateringPackageCardProps { pkg: CateringPackage; index?: number; } export default function CateringPackageCard({ pkg, index = 0 }: CateringPackageCardProps) { const { language } = useLanguage(); const t = getTranslation(language); const grouped = groupDishesByCategory(pkg.includedDishes); const packageName = (t.catering.packages as Record)?.[pkg.id] ?? pkg.name; const packageDescription = (t.catering.packageDescriptions as Record)?.[pkg.id] ?? pkg.description; const handlePricingInquiry = () => { const inquiryT = getWhatsAppInquiryTranslation(language); const template = (inquiryT.catering as { packagePricingInquiry?: string }).packagePricingInquiry; if (!template) return; const inquiryPackageName = (inquiryT.catering.packages as Record)?.[pkg.id] ?? pkg.name; const message = buildCateringPackagePricingMessage(inquiryPackageName, template); container.messagingGateway.openWhatsApp(message); }; return ( {pkg.image && (
{packageName}
{pkg.highlight && ( {t.catering.mostPopular} )}
)}

{packageName}

{packageDescription}

{t.catering.includedDishes}
{CATERING_CATEGORY_ORDER.map((category) => { const dishes = grouped[category]; if (dishes.length === 0) return null; const categoryLabel = (t.catering.categories as Record)?.[category] ?? category; return (

{categoryLabel}

    {dishes.map((dish) => (
  • {dish.name}
  • ))}
); })}
{t.catering.guestNote}
); }