from django.contrib.sitemaps import Sitemap
from blog.models import Blog, Cat_Blog
from core.models import Page
from django.urls import reverse


class BlogSitemap(Sitemap):
    """Sitemap pour les articles de blog"""
    changefreq = "weekly"
    priority = 0.8
    protocol = 'https'

    def items(self):
        return Blog.objects.filter(b_publier=True).order_by('-b_publdate')

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

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


class CategorySitemap(Sitemap):
    """Sitemap pour les catégories"""
    changefreq = "monthly"
    priority = 0.6
    protocol = 'https'

    def items(self):
        return Cat_Blog.objects.all()

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


class PageSitemap(Sitemap):
    """Sitemap pour les pages statiques"""
    changefreq = "monthly"
    priority = 0.5
    protocol = 'https'

    def items(self):
        return Page.objects.filter(p_publier=True, p_type='page')

    def location(self, obj):
        return obj.p_adresse


class StaticViewSitemap(Sitemap):
    """Sitemap pour les vues statiques"""
    priority = 0.5
    changefreq = 'monthly'
    protocol = 'https'

    def items(self):
        return ['blog_index']

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