from django.db import models
from django.contrib.auth.models import AbstractUser
from tenant_management.models import Client  # Para associar ao tenant

class CustomUser(AbstractUser):
    # Relaciona o usuário a um tenant
    tenant = models.ForeignKey(
        Client,  # O modelo Client refere-se ao tenant
        on_delete=models.CASCADE,
        related_name="users",  # Relaciona múltiplos usuários a um tenant
        null=True,  # Permite que o campo seja nulo caso o usuário não esteja associado a nenhum tenant
        blank=True,

    )

    email = models.EmailField(unique=False, null=True, blank=True)  # Novo campo de e-mail
    trial_expiration = models.DateField(null=True, blank=True, help_text="Data de expiração do período de teste")

    def __str__(self):
        return self.username

    @property
    def schema_name(self):
        # Quando o usuário estiver associado a um tenant, retorna o schema_name do tenant
        return self.tenant.schema_name if self.tenant else None


