import uuid
from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    # UUID comme clé primaire : vital pour la sécurité et l'anonymat futur
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    
    # Suppression du username pour utiliser l'email (plus moderne)
    username = None
    email = models.EmailField('Adresse Email', unique=True)

    # Rôles simplifiés
    is_voter = models.BooleanField(default=True)

    # On branche le manager personnalisé
    from .managers import CustomUserManager
    objects = CustomUserManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    class Meta:
        verbose_name = "Utilisateur"
        verbose_name_plural = "Utilisateurs"

    def __str__(self):
        return self.email