import type { Language } from '@/domain/language/entities'; import type { EventTypeId } from '@/domain/booking/event-types'; import type { BookingMessageCopy } from '@/application/messaging/whatsapp-message-builder'; const EVENT_LABELS_EN: Record = { birthday: 'Birthday', wedding: 'Wedding / Walima', engagement: 'Engagement / Nikah', anniversary: 'Anniversary', 'baby-shower': 'Baby Shower', graduation: 'Graduation', 'office-party': 'Office Party', 'corporate-lunch': 'Corporate Lunch', 'family-gathering': 'Family Gathering', 'religious-celebration': 'Eid, Diwali & Festivals', farewell: 'Farewell Party', retirement: 'Retirement', 'bridal-shower': 'Bridal Shower', 'holiday-party': 'Holiday Party', other: 'Other Celebration', }; const EVENT_LABELS_SV: Record = { birthday: 'Födelsedag', wedding: 'Bröllop / Walima', engagement: 'Förlovning / Nikah', anniversary: 'Årsdag', 'baby-shower': 'Babyshower', graduation: 'Examensfest', 'office-party': 'Kontorsfest', 'corporate-lunch': 'Företagslunch', 'family-gathering': 'Familjesammankomst', 'religious-celebration': 'Eid, Diwali & högtider', farewell: 'Avskedsfest', retirement: 'Pensionering', 'bridal-shower': 'Möhippa', 'holiday-party': 'Helgfest', other: 'Annat firande', }; const LOCALIZED: Partial>> = { sv: EVENT_LABELS_SV, }; export interface BookingEventsCopy { heroBadge: string; heroTitle: string; heroSubtitle: string; experienceDiningTitle: string; experienceDiningDesc: string; experienceCelebrateTitle: string; experienceCelebrateDesc: string; experienceCorporateTitle: string; experienceCorporateDesc: string; modeTable: string; modeTableDesc: string; modeEvent: string; modeEventDesc: string; eventPickerTitle: string; eventPickerSubtitle: string; eventTypeOtherLabel: string; eventTypeOtherPlaceholder: string; eventTypeRequired: string; eventTypeOtherRequired: string; formSubtitleTable: string; formSubtitleEvent: string; whatsappEventLine: string; whatsappModeTable: string; whatsappModeEvent: string; whatsappGreeting: string; whatsappLabelName: string; whatsappLabelPhone: string; whatsappLabelEmail: string; whatsappLabelLocation: string; whatsappLabelDate: string; whatsappLabelTime: string; whatsappLabelGuests: string; whatsappLabelNotes: string; whatsappLabelPreOrder: string; whatsappPreOrderNone: string; whatsappPreOrderTotal: string; whatsappConfirmLine: string; whatsappThanksLine: string; } const COPY_EN: BookingEventsCopy = { heroBadge: 'Dine • Celebrate • Gather', heroTitle: 'Reserve a Table or Book Your Event', heroSubtitle: 'From an intimate dinner for two to birthdays, weddings, engagements, and office celebrations — Shahi Kitchen sets the stage for unforgettable moments in Gothenburg.', experienceDiningTitle: 'Intimate Dining', experienceDiningDesc: 'Quiet tables, warm hospitality, and your favourite Shahi dishes.', experienceCelebrateTitle: 'Life Celebrations', experienceCelebrateDesc: 'Birthdays, engagements, weddings, anniversaries & milestones.', experienceCorporateTitle: 'Teams & Offices', experienceCorporateDesc: 'Lunches, farewells, team outings & corporate gatherings.', modeTable: 'Table Reservation', modeTableDesc: 'Book a table for dining', modeEvent: 'Private Event', modeEventDesc: 'Birthdays, weddings & more', eventPickerTitle: 'What are you celebrating?', eventPickerSubtitle: 'Choose your occasion — we tailor seating, menu ideas, and setup to your event.', eventTypeOtherLabel: 'Describe your celebration', eventTypeOtherPlaceholder: 'e.g. Engagement dinner, company awards night…', eventTypeRequired: 'Please select an event type.', eventTypeOtherRequired: 'Please describe your celebration.', formSubtitleTable: 'Tell us when you would like to dine with us.', formSubtitleEvent: 'Share your event details — our team will craft a memorable Shahi experience.', whatsappEventLine: 'Occasion', whatsappModeTable: 'Table reservation', whatsappModeEvent: 'Private event booking', whatsappGreeting: 'Hello Shahi Kitchen 👋', whatsappLabelName: 'Name', whatsappLabelPhone: 'Phone', whatsappLabelEmail: 'Email', whatsappLabelLocation: 'Location', whatsappLabelDate: 'Date', whatsappLabelTime: 'Time', whatsappLabelGuests: 'Guests', whatsappLabelNotes: 'Special Requests', whatsappLabelPreOrder: 'Pre-ordered items', whatsappPreOrderNone: 'None', whatsappPreOrderTotal: 'Pre-order total', whatsappConfirmLine: 'Please confirm availability and pre-order.', whatsappThanksLine: 'Thank you!', }; const COPY_SV: BookingEventsCopy = { ...COPY_EN, heroBadge: 'Ät • Fira • Samla', heroTitle: 'Boka bord eller boka ditt evenemang', heroSubtitle: 'Från en intim middag till födelsedagar, bröllop, förlovningar och kontorsfester — Shahi Kitchen skapar oförglömliga stunder i Göteborg.', experienceDiningTitle: 'Intim middag', experienceDiningDesc: 'Lugna bord, varm gästfrihet och dina Shahi-favoriter.', experienceCelebrateTitle: 'Livets firanden', experienceCelebrateDesc: 'Födelsedagar, förlovningar, bröllop, jubileum & milstolpar.', experienceCorporateTitle: 'Team & kontor', experienceCorporateDesc: 'Luncher, avsked, teamutflykter & företagssammankomster.', modeTable: 'Bordsbokning', modeTableDesc: 'Boka bord för middag', modeEvent: 'Privat evenemang', modeEventDesc: 'Födelsedagar, bröllop & mer', eventPickerTitle: 'Vad firar ni?', eventPickerSubtitle: 'Välj tillfälle — vi anpassar plats, menyidéer och upplägg till ert event.', eventTypeOtherLabel: 'Beskriv ert firande', eventTypeOtherPlaceholder: 't.ex. förlovningsmiddag, företagsgalan…', eventTypeRequired: 'Välj en typ av evenemang.', eventTypeOtherRequired: 'Beskriv ert firande.', formSubtitleTable: 'Berätta när ni vill äta hos oss.', formSubtitleEvent: 'Dela eventdetaljer — vårt team skapar en minnesvärd Shahi-upplevelse.', whatsappEventLine: 'Tillfälle', whatsappModeTable: 'Bordsbokning', whatsappModeEvent: 'Bokning av privat evenemang', whatsappGreeting: 'Hej Shahi Kitchen 👋', whatsappLabelName: 'Namn', whatsappLabelPhone: 'Telefon', whatsappLabelEmail: 'E-post', whatsappLabelLocation: 'Plats', whatsappLabelDate: 'Datum', whatsappLabelTime: 'Tid', whatsappLabelGuests: 'Gäster', whatsappLabelNotes: 'Särskilda önskemål', whatsappLabelPreOrder: 'Förbeställda rätter', whatsappPreOrderNone: 'Inga', whatsappPreOrderTotal: 'Förbeställning totalt', whatsappConfirmLine: 'Vänligen bekräfta tillgänglighet och förbeställning.', whatsappThanksLine: 'Tack!', }; const COPY_LOCALIZED: Partial> = { sv: COPY_SV, }; export function getBookingEventsCopy(lang: Language): BookingEventsCopy { if (lang === 'en') return COPY_EN; return COPY_LOCALIZED[lang] ?? COPY_EN; } export function getEventTypeLabel(lang: Language, id: EventTypeId): string { if (lang === 'en') return EVENT_LABELS_EN[id]; return LOCALIZED[lang]?.[id] ?? EVENT_LABELS_EN[id]; } export function toBookingMessageCopy( copy: BookingEventsCopy, location: { askim: string; backaplan: string }, ): BookingMessageCopy { return { askim: location.askim, backaplan: location.backaplan, modeTable: copy.whatsappModeTable, modeEvent: copy.whatsappModeEvent, eventLine: copy.whatsappEventLine, greeting: copy.whatsappGreeting, labelName: copy.whatsappLabelName, labelPhone: copy.whatsappLabelPhone, labelEmail: copy.whatsappLabelEmail, labelLocation: copy.whatsappLabelLocation, labelDate: copy.whatsappLabelDate, labelTime: copy.whatsappLabelTime, labelGuests: copy.whatsappLabelGuests, labelNotes: copy.whatsappLabelNotes, labelPreOrder: copy.whatsappLabelPreOrder, preOrderNone: copy.whatsappPreOrderNone, preOrderTotal: copy.whatsappPreOrderTotal, confirmLine: copy.whatsappConfirmLine, thanksLine: copy.whatsappThanksLine, }; }