from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): """Custom User model using email as the unique identifier.""" email = models.EmailField( unique=True, max_length=254, help_text="Email address used for authentication.", ) username = models.CharField( max_length=150, blank=True, null=True, help_text="Optional display name. Not used for authentication.", ) USERNAME_FIELD = "email" REQUIRED_FIELDS: list[str] = [] class Meta: db_table = "accounts_user" verbose_name = "User" verbose_name_plural = "Users" def __str__(self) -> str: return self.email