from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from .models import User, LoginCode


@admin.register(User)
class UserAdmin(BaseUserAdmin):
    list_display = ['email', 'first_name', 'last_name', 'member_of', 'is_staff', 'is_active', 'date_joined']
    list_filter = ['is_staff', 'is_active', 'is_superuser', 'member_of']
    search_fields = ['email', 'first_name', 'last_name']

    fieldsets = BaseUserAdmin.fieldsets + (
        ('Información adicional', {
            'fields': ('occupation', 'member_of')
        }),
    )

    add_fieldsets = BaseUserAdmin.add_fieldsets + (
        ('Información adicional', {
            'fields': ('occupation', 'member_of')
        }),
    )


@admin.register(LoginCode)
class LoginCodeAdmin(admin.ModelAdmin):
    list_display = ['user', 'is_used', 'attempts', 'created_at', 'expires_at']
    list_filter = ['is_used', 'created_at']
    search_fields = ['user__email']
    readonly_fields = ['code_hash', 'created_at', 'expires_at']
    date_hierarchy = 'created_at'