from django.db import models
from django.utils.text import slugify


class Project(models.Model):

    title_fa = models.CharField(max_length=255)
    title_en = models.CharField(max_length=255)

    slug = models.SlugField(
        unique=True,
        blank=True,
        editable=False
    )

    image = models.ImageField(upload_to="projects/")

    image2 = models.ImageField(
        upload_to="projects/",
        blank=True,
        null=True
    )

    origin_fa = models.CharField(max_length=100)
    origin_en = models.CharField(max_length=100)

    destination_fa = models.CharField(max_length=100)
    destination_en = models.CharField(max_length=100)

    quantity = models.CharField(max_length=100)

    transport_fa = models.CharField(max_length=100)
    transport_en = models.CharField(max_length=100)

    partner_fa = models.CharField(max_length=255, blank=True)
    partner_en = models.CharField(max_length=255, blank=True)

    year = models.CharField(max_length=20)

    is_active = models.BooleanField(default=True)

    from django.utils.text import slugify

    def save(self, *args, **kwargs):
        if not self.slug:
            base_slug = slugify(self.title_en)
            slug = base_slug
            counter = 1

            while Project.objects.filter(slug=slug).exists():
                slug = f"{base_slug}-{counter}"
                counter += 1

            self.slug = slug

        super().save(*args, **kwargs)

    def __str__(self):
        return self.title_fa