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


class ClientProfile(models.Model):
    """
    Links a Django User to an internal Client for portal access.
    """
    user = models.OneToOneField(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        related_name='client_profile'
    )
    client = models.OneToOneField(
        'task_management.Client',
        on_delete=models.CASCADE,
        related_name='portal_profile',
        null=True,
        blank=True,
        help_text="Link to the internal client record"
    )

    def __str__(self):
        return f"{self.user.get_full_name()} → {self.client}"

    @property
    def company(self):
        if self.client:
            return self.client.company_name
        return ''

    @property
    def active_project(self):
        """Returns the first active project for this client."""
        if not self.client:
            return None
        return self.client.projects.filter(
            is_active=True
        ).exclude(status='cancelled').first()
