from django.contrib.sitemaps import Sitemap
from django.urls import reverse
from .models import Service, Projet


class StaticViewSitemap(Sitemap):
    """Sitemap pour les pages statiques"""
    priority = 0.9
    changefreq = 'weekly'
    i18n = True
    alternates = True
    x_default = True

    def items(self):
        return ['home', 'services', 'portfolio', 'certifications', 'devis', 'contact', 'a_propos']

    def location(self, item):
        return reverse(item)


class ServiceSitemap(Sitemap):
    """Sitemap pour les pages de services"""
    changefreq = 'weekly'
    priority = 0.8
    i18n = True
    alternates = True

    def items(self):
        return Service.objects.filter(actif=True)

    def location(self, obj):
        return reverse('service_detail', args=[obj.slug])

    def lastmod(self, obj):
        return obj.created_at


class ProjetSitemap(Sitemap):
    """Sitemap pour les projets du portfolio"""
    changefreq = 'monthly'
    priority = 0.6
    i18n = True
    alternates = True

    def items(self):
        return Projet.objects.filter(actif=True)

    def location(self, obj):
        return reverse('projet_detail', args=[obj.slug])
