from django.db import models
from ckeditor.fields import RichTextField
from django.utils.text import slugify


# Create your models here.
class News(models.Model):
    title = models.CharField(max_length=200, verbose_name='Заголовок')
    slug = models.SlugField(max_length=200, unique=True, blank=True, verbose_name='URL сторінки')
    description = models.TextField(max_length=1000, verbose_name='Опис')
    status = models.BooleanField(verbose_name='Активна', default=True)
    date = models.DateTimeField(verbose_name='Дата Публікації') # auto_now=True можна написати, якшо потрібно шоб актуальна дата заповнювалась автоматом при створенні
    thumbnails_image = models.ImageField(upload_to='media/img/', verbose_name='Зобарження в списку новин', default='media/img/default.jpg')
    head_image = models.ImageField(upload_to='media/img/', verbose_name='Фонове зображення (хедер)', default='media/img/default.jpg')
    content = RichTextField(verbose_name='Контент', blank=True, null=True)

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
            # Перевірка унікальності slug
            original_slug = self.slug
            counter = 1
            while News.objects.filter(slug=self.slug).exists():
                self.slug = f"{original_slug}-{counter}"
                counter += 1
        super().save(*args, **kwargs)

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'Публікацію'
        verbose_name_plural = 'Публікації'