from django.db import models
from django.contrib.auth import get_user_model

User = get_user_model()

class Department(models.Model):
    name = models.CharField(max_length=100, unique=True)
    leader = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='departments_led')
    description = models.TextField(blank=True)
    date_created = models.DateField(auto_now_add=True)
    
    class Meta:
        ordering = ['name']
        verbose_name_plural = "Departments"

    def member_count(self):
        try:
            from members.models import Member
            return Member.objects.filter(department=self).count()
        except:
            return 0

    def __str__(self):
        return self.name