from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from api.models import User, Atoll, Island
from django.contrib.auth.models import Permission


# Define a new User admin
class UserAdmin(BaseUserAdmin):
    list_display = (
        "username",
        "email",
        "first_name",
        "last_name",
        "is_active",
        "is_staff",
        "mobile",
        "address",
        "wallet_balance",
        "acc_no",
        "id_card",
        "dob",
        "atoll",
        "island",
        "terms_accepted",
        "policy_accepted",
    )  # Add custom fields here

    fieldsets = (
        (None, {"fields": ("username", "password")}),
        (
            "Personal info",
            {
                "fields": (
                    "first_name",
                    "last_name",
                    "email",
                    "mobile",
                    "address",
                    "wallet_balance",
                    "acc_no",
                    "id_card",
                    "dob",
                    "atoll",
                    "island",
                    "terms_accepted",
                    "policy_accepted",
                )
            },
        ),  # Add custom fields here
        (
            "Permissions",
            {
                "fields": (
                    "is_active",
                    "is_staff",
                    "is_superuser",
                    "groups",
                    "user_permissions",
                )
            },
        ),
        ("Important dates", {"fields": ("last_login", "date_joined")}),
    )


# Re-register UserAdmin
admin.site.register(User, UserAdmin)
admin.site.register(Permission)
admin.site.register(Atoll)
admin.site.register(Island)


# TokenAdmin.raw_id_fields = ["user"]