from django.db import models
from django.conf import settings


class MasterDesignation(models.Model):
    STATUS_CHOICES = [
        ("ACTIVE", "Active"),
        ("DRAFT", "Draft"),
    ]

    name = models.CharField(max_length=150, unique=True, blank=False)
    status = models.CharField(
        max_length=10, choices=STATUS_CHOICES, default="ACTIVE"
    )
    created_by = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        related_name="created_master_designations",
    )
    updated_by = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        related_name="updated_master_designations",
    )
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        db_table = "master_designations"
        ordering = ["-created_at"]

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        # Trim whitespace from name before saving
        if self.name:
            self.name = self.name.strip()
        super().save(*args, **kwargs)
