import { MetadataRoute } from 'next';
import { services } from '@/data/services';
import { projects } from '@/data/projects';

const BASE_URL = 'https://test.chichekin-tech.ru'; // ← Замените на ваш актуальный домен

// === БАЗА СТАТЕЙ БЛОГА (дублирует данные из blog/page.tsx) ===
type BlogArticle = {
  slug: string;
  category: string;
  date: string;
};

const blogArticles: BlogArticle[] = [
  // Мойка фасадов
  { slug: 'kak-sekonomit-na-moyke-fasada', category: 'moyka-fasadov', date: '2024-01-15' },
  { slug: 'chem-myty-fasad-bezopasno', category: 'moyka-fasadov', date: '2023-12-28' },
  // Чистка кровли
  { slug: 'kogda-chistit-kryshu-chek-list', category: 'chistka-krovli', date: '2024-02-10' },
  { slug: 'kak-ne-povredit-pokrytie-pri-ochistke', category: 'chistka-krovli', date: '2024-02-03' },
  // Герметизация швов
  { slug: 'teply-shov-za-5-shagov', category: 'germetizatsiya-shvov', date: '2024-01-20' },
  { slug: 'pochemu-germetik-treskaetsya', category: 'germetizatsiya-shvov', date: '2024-01-05' },
  // Ремонт фасада
  { slug: 'kraska-shtukaturka-ili-ventfasad', category: 'remont-fasada', date: '2024-02-12' },
  { slug: 'kak-podgotovit-fasad-k-remontu', category: 'remont-fasada', date: '2024-01-25' },
  // Установка кондиционеров
  { slug: 'gde-razmestit-vneshniy-blok', category: 'ustanovka-konditsionera', date: '2024-02-08' },
  { slug: 'kak-ne-isportit-fasad-pri-montazhe', category: 'ustanovka-konditsionera', date: '2024-02-01' },
  // Такелажные работы
  { slug: 'podem-gruza-na-vysotu-kak-rasschitat-stoimost', category: 'takelazhnye-raboty', date: '2024-02-18' },
  { slug: 'chto-mozhno-a-chto-nelzya-podnimat-alpinistami', category: 'takelazhnye-raboty', date: '2024-02-05' },
  // Уборка после ремонта
  { slug: 'chto-vhodit-v-klining-posle-stroiki', category: 'uborka-posle-remonta', date: '2024-02-22' },
  { slug: 'kak-udalit-tsementnye-nabryzgi-bez-tsarapin', category: 'uborka-posle-remonta', date: '2024-02-10' },
];

// Даты последних изменений проектов (год из данных)
const projectDates: Record<number, string> = {};
projects.forEach((p) => {
  projectDates[p.id] = `${p.year}-06-01`;
});

export default function sitemap(): MetadataRoute.Sitemap {
  const now = new Date().toISOString();

  // 1. Статические страницы
  const staticPages: MetadataRoute.Sitemap = [
    { url: BASE_URL, lastModified: now, changeFrequency: 'weekly', priority: 1.0 },
    { url: `${BASE_URL}/uslugi`, lastModified: now, changeFrequency: 'weekly', priority: 0.9 },
    { url: `${BASE_URL}/tseny`, lastModified: now, changeFrequency: 'monthly', priority: 0.8 },
    { url: `${BASE_URL}/portfolio`, lastModified: now, changeFrequency: 'weekly', priority: 0.8 },
    { url: `${BASE_URL}/o-kompanii`, lastModified: now, changeFrequency: 'monthly', priority: 0.7 },
    { url: `${BASE_URL}/blog`, lastModified: now, changeFrequency: 'weekly', priority: 0.8 },
    { url: `${BASE_URL}/kontakty`, lastModified: now, changeFrequency: 'yearly', priority: 0.6 },
    { url: `${BASE_URL}/safety`, lastModified: now, changeFrequency: 'yearly', priority: 0.5 },
    { url: `${BASE_URL}/sitemap`, lastModified: now, changeFrequency: 'monthly', priority: 0.3 },
  ];

  // 2. Страницы услуг
  const servicePages: MetadataRoute.Sitemap = services.map((service) => ({
    url: `${BASE_URL}${service.href}`,
    lastModified: now,
    changeFrequency: 'monthly' as const,
    priority: 0.9,
  }));

  // 3. Страницы категорий блога
  const blogCategoryPages: MetadataRoute.Sitemap = services.map((service) => ({
    url: `${BASE_URL}/blog/${service.slug}`,
    lastModified: now,
    changeFrequency: 'weekly' as const,
    priority: 0.7,
  }));

  // 4. Страницы статей блога
  const blogArticlePages: MetadataRoute.Sitemap = blogArticles.map((article) => ({
    url: `${BASE_URL}/blog/${article.category}/${article.slug}`,
    lastModified: new Date(article.date).toISOString(),
    changeFrequency: 'yearly' as const,
    priority: 0.6,
  }));

  // 5. Страницы проектов портфолио (если у вас есть отдельные страницы)
  // Если портфолио только на /portfolio — этот блок можно убрать
  // const projectPages: MetadataRoute.Sitemap = projects.map((project) => ({
  //   url: `${BASE_URL}/portfolio/${project.id}`,
  //   lastModified: projectDates[project.id] || now,
  //   changeFrequency: 'yearly' as const,
  //   priority: 0.5,
  // }));

  return [
    ...staticPages,
    ...servicePages,
    ...blogCategoryPages,
    ...blogArticlePages,
  ];
}