from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import CustomUser, Profile, IdentityVerification


@admin.register(CustomUser)
class CustomUserAdmin(UserAdmin):
    model = CustomUser
    list_display = (
        "username",
        "email",
        "first_name",
        "last_name",
        "is_staff",
        "is_active",
        "is_verified",
        "is_celebrity",
    )
    list_filter = ("is_staff", "is_active", "is_verified", "is_celebrity")
    ordering = ("email",)

    fieldsets = (
        (None, {"fields": ("username", "email", "password")} ),
        ("Personal info", {"fields": ("first_name", "middle_name", "last_name")} ),
        ("Verification", {"fields": ("is_verified", "is_celebrity", "profile_completed")} ),
        ("Permissions", {"fields": ("is_staff", "is_active", "is_superuser", "groups", "user_permissions")} ),
        ("Important dates", {"fields": ("last_login", "date_joined")} ),
    )

    add_fieldsets = (
        (None, {
            "classes": ("wide",),
            "fields": ("username", "email", "password1", "password2", "is_staff", "is_active"),
        }),
    )


@admin.register(Profile)
class ProfileAdmin(admin.ModelAdmin):
    list_display = ("user", "display_name", "visibility", "city", "country", "created_at")
    list_filter = ("visibility", "country", "city")
    search_fields = ("user__username", "display_name", "city", "country")


@admin.register(IdentityVerification)
class IdentityVerificationAdmin(admin.ModelAdmin):
    list_display = ("user", "status", "submitted_at", "reviewed_at")
    list_filter = ("status",)
    search_fields = ("user__username", "user__email")
    readonly_fields = ("submitted_at", "reviewed_at")
