"""
Admin — App Users
==================
Administração de CustomUser com email como identificador.
"""

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.utils.translation import gettext_lazy as _

from .models import CustomUser


@admin.register(CustomUser)
class CustomUserAdmin(BaseUserAdmin):
    """Admin personalizado para CustomUser (sem username)."""

    list_display = ("email", "nombre", "apellido", "rol", "is_verified", "is_active", "fecha_registro")
    list_filter = ("rol", "is_verified", "is_active", "is_staff")
    search_fields = ("email", "nombre", "apellido", "telefono")
    ordering = ("-fecha_registro",)

    # Redefinir fieldsets sin 'username'
    fieldsets = (
        (None, {"fields": ("email", "password")}),
        (_("Informação pessoal"), {"fields": ("nombre", "apellido", "telefono", "foto_perfil")}),
        (_("Função e verificação"), {"fields": ("rol", "is_verified")}),
        (
            _("Permissões"),
            {
                "fields": ("is_active", "is_staff", "is_superuser", "groups", "user_permissions"),
            },
        ),
    )

    add_fieldsets = (
        (
            None,
            {
                "classes": ("wide",),
                "fields": ("email", "nombre", "apellido", "rol", "password1", "password2"),
            },
        ),
    )
