Replace entire repo content with updated code from /root/shahikitchen-website/
This commit is contained in:
@@ -2,6 +2,7 @@ import type { DeliveryInquiryDetails, PickupInquiryDetails } from '@/domain/cart
|
||||
import type { BookingDetails } from '@/domain/booking/entities';
|
||||
import { isBookingComplete } from '@/domain/booking/validation';
|
||||
import type { Language } from '@/domain/language/entities';
|
||||
import { localizeOrderLineName } from '@/application/i18n/menu-localization';
|
||||
import {
|
||||
calculateOrderTotal,
|
||||
formatOrderLinesForInquiry,
|
||||
@@ -46,14 +47,21 @@ export function getSuggestedPickupTime(language: Language, from: Date = new Date
|
||||
return suggested.toLocaleTimeString(timeLocale, { hour: '2-digit', minute: '2-digit' });
|
||||
}
|
||||
|
||||
function localizeInquiryLines(lang: Language, items: OrderLine[]): string {
|
||||
return formatOrderLinesForInquiry(
|
||||
items.map((item) => ({ ...item, name: localizeOrderLineName(lang, item) })),
|
||||
);
|
||||
}
|
||||
|
||||
export function buildPickupInquiryMessage(
|
||||
items: OrderLine[],
|
||||
details: PickupInquiryDetails,
|
||||
copy: CartInquiryCopy,
|
||||
language: Language = 'en',
|
||||
): string | null {
|
||||
if (items.length === 0) return null;
|
||||
|
||||
const lines = formatOrderLinesForInquiry(items);
|
||||
const lines = localizeInquiryLines(language, items);
|
||||
const total = calculateOrderTotal(items);
|
||||
|
||||
return `${copy.pickupIntro}
|
||||
@@ -67,10 +75,11 @@ export function buildDeliveryInquiryMessage(
|
||||
items: OrderLine[],
|
||||
details: DeliveryInquiryDetails,
|
||||
copy: CartInquiryCopy,
|
||||
language: Language = 'en',
|
||||
): string | null {
|
||||
if (items.length === 0) return null;
|
||||
|
||||
const lines = formatOrderLinesForInquiry(items);
|
||||
const lines = localizeInquiryLines(language, items);
|
||||
const total = calculateOrderTotal(items);
|
||||
|
||||
return `${copy.deliveryIntro}
|
||||
@@ -83,6 +92,15 @@ ${copy.messagePreferredTime}: ${details.preferredTime.trim()}
|
||||
${copy.deliverySwishNote}`;
|
||||
}
|
||||
|
||||
const PACKAGE_NAME_PLACEHOLDER = '{{package}}';
|
||||
|
||||
export function buildCateringPackagePricingMessage(
|
||||
packageName: string,
|
||||
template: string,
|
||||
): string {
|
||||
return template.split(PACKAGE_NAME_PLACEHOLDER).join(packageName);
|
||||
}
|
||||
|
||||
export function buildBookingWhatsAppMessage(
|
||||
booking: BookingDetails,
|
||||
preOrder: OrderLine[],
|
||||
|
||||
Reference in New Issue
Block a user