# -*- coding: utf-8 -*-
from __future__ import annotations

from django.contrib import admin
from django.utils.translation import gettext_lazy as _

from hotpocket_backend.apps.accounts.models import AuthKey


class AuthKeyAdmin(admin.ModelAdmin):
    list_display = (
        'pk', 'account_uuid', 'key', 'created_at', 'consumed_at', 'render_is_active',
    )
    search_fields = ('pk', 'account_uuid', 'key')
    readonly_fields = (
        'pk',
        'account_uuid',
        'key',
        'consumed_at',
        'created_at',
        'deleted_at',
    )
    ordering = ['-created_at']

    def has_change_permission(self, request, obj=None):
        return False

    def has_delete_permission(self, request, obj=None):
        return request.user.is_superuser

    @admin.display(
        description=_('Is Active?'), boolean=True, ordering='-deleted_at',
    )
    def render_is_active(self, obj: AuthKey | None = None) -> bool | None:
        if obj is None:
            return None

        return obj.is_active


admin.site.register(AuthKey, AuthKeyAdmin)
