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


@admin.register(User)
class UserAdmin(BaseUserAdmin):
    """Admin configuration for User model"""
    
    list_display = ['email', 'name', 'is_active', 'is_staff', 'date_joined']
    list_filter = ['is_active', 'is_staff', 'is_superuser', 'date_joined']
    search_fields = ['email', 'name']
    ordering = ['-date_joined']
    
    fieldsets = (
        (None, {'fields': ('email', 'password')}),
        ('Información Personal', {'fields': ('name',)}),
        ('Permisos de Documentos', {
            'fields': (
                'can_add_documents',
                'can_create_folders',
                'can_download',
                'can_share_by_email',
                'can_view',
                'can_edit_folders',
                'can_edit_documents',
                'can_delete_documents',
                'can_delete_folders',
            )
        }),
        ('Permisos de Sistema', {
            'fields': ('can_create_users', 'is_active', 'is_staff', 'is_superuser')
        }),
        ('Fechas', {'fields': ('date_joined',)}),
    )
    
    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': ('email', 'name', 'password1', 'password2'),
        }),
    )
    
    readonly_fields = ['date_joined']
