import { mockDb } from '@/lib/mockDb' import { getTranslations, setRequestLocale } from 'next-intl/server' import { Link } from '@/i18n/routing' import Image from 'next/image' import { Calendar, MapPin, Zap } from 'lucide-react' import type { Metadata } from 'next' import { basicMetadata } from '@/lib/seo' interface Props { params: Promise<{ locale: string }> } export async function generateMetadata({ params }: Props): Promise { const { locale } = await params const title = locale === 'en' ? 'Events in Marmaris — Marmaris Local' : locale === 'ru' ? 'События в Мармарисе — Marmaris Local' : 'Marmaris Etkinlikleri — Marmaris Local' const description = locale === 'en' ? 'Upcoming local events, live music nights and pool parties in Marmaris.' : locale === 'ru' ? 'Предстоящие местные события, живая музыка и вечеринки у бассейна в Мармарисе.' : 'Marmaris\'teki yaklaşan yerel etkinlikler, canlı müzik geceleri ve havuz partileri.' return basicMetadata(title, description) } export default async function EventsPage({ params }: Props) { const { locale } = await params setRequestLocale(locale) const t = await getTranslations('events') // Get active events from DB const events = await mockDb.getEvents(true) return (
{/* Intro section */}

{t('title')}

{t('subtitle')}

{/* Events Grid */} {events.length === 0 ? (

{t('noEvents')}

) : (
{events.map((event) => { const title = locale === 'tr' ? event.titleTr : locale === 'ru' ? event.titleRu : event.titleEn const desc = locale === 'tr' ? event.descriptionTr : locale === 'ru' ? event.descriptionRu : event.descriptionEn const venueName = event.listing ? event.listing.nameTr : '' return (
{/* Image Cover */}
{event.coverImage ? ( {title} ) : (
)} {/* Sponsored badge */} {event.isSponsored && ( {t('sponsored')} )}
{/* Event Details */}
{/* Date badge */}
{new Date(event.startDate).toLocaleDateString(locale, { day: 'numeric', month: 'long', hour: '2-digit', minute: '2-digit' })}

{title}

{desc}

{/* Hosting Venue info */} {event.listing && (
{t('venue')}: {venueName}
)}
) })}
)}
) }