Files
webseite_BB-Apartment2026/app/sitemap.ts
T
MarkusandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 2b24334bfa Initial upload of BB-Apartment 2026 website.
Adds the complete Next.js website including i18n routing, house and
apartment pages, Beds24 v2 integration for live availability/pricing,
Stripe checkout, contact forms, Docker setup and deployment docs.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-19 22:54:49 +02:00

51 lines
1.4 KiB
TypeScript

import { MetadataRoute } from "next";
import { houses } from "@/src/config/apartments";
const baseUrl = "https://bb-apartment.de";
export default function sitemap(): MetadataRoute.Sitemap {
const locales = ["de", "en"];
const staticRoutes: MetadataRoute.Sitemap = [
{ url: baseUrl, lastModified: new Date() },
...locales.map((locale) => ({
url: `${baseUrl}/${locale}`,
lastModified: new Date(),
})),
...locales.map((locale) => ({
url: `${baseUrl}/${locale}/houses`,
lastModified: new Date(),
})),
...locales.map((locale) => ({
url: `${baseUrl}/${locale}/contact`,
lastModified: new Date(),
})),
...locales.map((locale) => ({
url: `${baseUrl}/${locale}/imprint`,
lastModified: new Date(),
})),
...locales.map((locale) => ({
url: `${baseUrl}/${locale}/privacy`,
lastModified: new Date(),
})),
];
const houseRoutes: MetadataRoute.Sitemap = houses.flatMap((house) =>
locales.map((locale) => ({
url: `${baseUrl}/${locale}/houses/${house.slug}`,
lastModified: new Date(),
}))
);
const apartmentRoutes: MetadataRoute.Sitemap = houses.flatMap((house) =>
house.apartments.flatMap((apartment) =>
locales.map((locale) => ({
url: `${baseUrl}/${locale}/apartments/${apartment.slug}`,
lastModified: new Date(),
}))
)
);
return [...staticRoutes, ...houseRoutes, ...apartmentRoutes];
}