from django.contrib import admin

from .models import AuthToken


@admin.register(AuthToken)
class AuthTokenAdmin(admin.ModelAdmin):
    list_display = ("name", "token_preview", "is_active", "note", "created_at")
    list_filter = ("is_active",)
    search_fields = ("name",)
    readonly_fields = ("token", "created_at")

    fieldsets = (
        (None, {"fields": ("name", "is_active", "note")}),
        ("Token", {"fields": ("token",)}),
        ("Audit", {"fields": ("created_at",)}),
    )

    @admin.display(description="Token")
    def token_preview(self, obj):
        if obj.token:
            return obj.token[:8] + "..." + obj.token[-4:]
        return "-"
