import { MetadataRoute } from 'next'; import { productService } from '../lib/services/productService'; import { PRODUCTS } from '../lib/data/products'; export default async function sitemap(): Promise { const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://canina-iran.com'; // Static routes const staticRoutes: MetadataRoute.Sitemap = [ { url: `${baseUrl}`, lastModified: new Date(), changeFrequency: 'daily', priority: 1, }, { url: `${baseUrl}/shop`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.9, }, { url: `${baseUrl}/wiki`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.8, }, { url: `${baseUrl}/blog`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.8, }, { url: `${baseUrl}/search`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.5, }, { url: `${baseUrl}/about`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.6, }, { url: `${baseUrl}/contact`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.6, }, ]; // Dynamic products try { const res = await productService.getProducts({ limit: 999 }); const products = res.data && res.data.length > 0 ? res.data : PRODUCTS; const productRoutes: MetadataRoute.Sitemap = products.map((product) => ({ url: `${baseUrl}/shop/${product.slug || product.id}`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.8, })); return [...staticRoutes, ...productRoutes]; } catch { const fallbackRoutes: MetadataRoute.Sitemap = PRODUCTS.map((product) => ({ url: `${baseUrl}/shop/${product.slug || product.id}`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.8, })); return [...staticRoutes, ...fallbackRoutes]; } }