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

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

from hotpocket_backend.apps.saves.models import Save


class SaveAdmin(admin.ModelAdmin):
    list_display = (
        'pk', 'key', 'account_uuid', 'created_at', 'render_is_active',
    )
    search_fields = ('pk', 'account_uuid', 'url')
    fields = (
        'pk',
        'account_uuid',
        'key',
        'url',
        'title',
        'description',
        'last_processed_at',
        'is_netloc_banned',
        'created_at',
        'deleted_at',
    )
    readonly_fields = (
        'pk',
        'account_uuid',
        'key',
        'created_at',
        'deleted_at',
    )
    ordering = ['-created_at']

    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: Save | None = None) -> bool | None:
        if obj is None:
            return None

        return obj.is_active


admin.site.register(Save, SaveAdmin)
