import os
from datetime import datetime

# Настройки
DOMAIN = "https://radionica3d.me"
LANGUAGES = ["en", "me", "ru", "ua"]
# Список публичных страниц (без учета языка)
PAGES = [
    "",
    "portfolio",
    "about",
    "blog",
    "contact",
    "help",
    "guidelines",
    "privacy",
    "terms",
    "careers"
]

def generate_sitemap():
    xml = ['<?xml version="1.0" encoding="UTF-8"?>']
    xml.append('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">')
    
    # Добавляем каждую страницу для каждого языка
    for page in PAGES:
        for lang in LANGUAGES:
            # Формируем путь: /lang/page или /lang
            path = f"/{lang}/{page}" if page else f"/{lang}"
            
            # Приоритеты
            if page == "":
                priority = "1.0"
                freq = "weekly"
            elif page in ["portfolio", "blog"]:
                priority = "0.8"
                freq = "daily"
            else:
                priority = "0.5"
                freq = "monthly"
            
            url = f"{DOMAIN}{path}"
            xml.append('  <url>')
            xml.append(f'    <loc>{url}</loc>')
            xml.append(f'    <lastmod>{datetime.now().strftime("%Y-%m-%d")}</lastmod>')
            xml.append(f'    <changefreq>{freq}</changefreq>')
            xml.append(f'    <priority>{priority}</priority>')
            
            # Добавляем ссылки на альтернативные языковые версии
            for alt_lang in LANGUAGES:
                alt_path = f"/{alt_lang}/{page}" if page else f"/{alt_lang}"
                xml.append(f'    <xhtml:link rel="alternate" hreflang="{alt_lang}" href="{DOMAIN}{alt_path}"/>')
            
            # x-default (пусть будет ME как основной или просто без префикса, но у нас роутер всегда редиректит)
            # В нашем случае x-default укажем на ME
            xml.append(f'    <xhtml:link rel="alternate" hreflang="x-default" href="{DOMAIN}/me/{page if page else ""}"/>')
            
            xml.append('  </url>')
    
    xml.append('</urlset>')
    
    content = "\n".join(xml)
    
    # Путь к public/sitemap.xml
    # Скрипт лежит в scripts/, так что идем на уровень выше
    root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sitemap_path = os.path.join(root_dir, "public", "sitemap.xml")
    
    with open(sitemap_path, "w", encoding="utf-8") as f:
        f.write(content)
    
    print(f"Sitemap generated with {len(PAGES) * len(LANGUAGES)} URLs at {sitemap_path}")

if __name__ == "__main__":
    generate_sitemap()
