import { Metadata } from 'next'; import { notFound } from 'next/navigation'; import Link from 'next/link'; import { Clock, Phone, ArrowRight } from 'lucide-react'; import { getCityBySlug, getAllCitySlugs, dolnySlaskCities } from '@/content/cities'; import { HeroSection } from '@/components/sections/HeroSection'; import { ProcessSteps } from '@/components/sections/ProcessSteps'; import { PricingTable } from '@/components/sections/PricingTable'; import { WhyUs } from '@/components/sections/WhyUs'; import { FaqAccordion } from '@/components/sections/FaqAccordion'; import { CtaBanner } from '@/components/sections/CtaBanner'; import { Testimonials } from '@/components/sections/Testimonials'; import { acProcessSteps } from '@/content/process'; import { companyDetails } from '@/content/company'; interface Props { params: Promise<{ miasto: string }>; } export async function generateStaticParams() { return getAllCitySlugs().map((c) => ({ miasto: c.slug })); } export async function generateMetadata({ params }: Props): Promise { const { miasto } = await params; const city = getCityBySlug(miasto); if (!city) return { title: 'Nie znaleziono' }; return { title: city.seoTitle, description: city.seoDescription, alternates: { canonical: `/klimatyzacja/${city.slug}` }, openGraph: { title: city.seoTitle, description: city.seoDescription, }, }; } export default async function MiastoPage({ params }: Props) { const { miasto } = await params; const city = getCityBySlug(miasto); if (!city) notFound(); const otherCities = dolnySlaskCities.filter((c) => c.slug !== city.slug); const jsonLd = { "@context": "https://schema.org", "@type": "LocalBusiness", "name": companyDetails.name, "telephone": companyDetails.phone, "email": companyDetails.email, "url": `${process.env.NEXT_PUBLIC_BASE_URL || 'https://thermcool.pl'}/klimatyzacja/${city.slug}`, "address": { "@type": "PostalAddress", "streetAddress": companyDetails.address.street, "addressLocality": companyDetails.address.city, "postalCode": companyDetails.address.zipCode, "addressCountry": "PL", }, "areaServed": { "@type": "City", "name": city.name }, "priceRange": "$$", }; return (