# -*- 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 Association


class AssociationAdmin(admin.ModelAdmin):
    list_display = (
        'pk', 'account_uuid', 'target', 'created_at', 'render_is_active',
    )
    search_fields = ('pk', 'account_uuid')
    fields = (
        'pk',
        'account_uuid',
        'archived_at',
        'starred_at',
        'target_meta',
        'target_title',
        'target_description',
        'created_at',
        'deleted_at',
    )
    readonly_fields = (
        'pk',
        'account_uuid',
        'target_meta',
        'target',
        'archived_at',
        'starred_at',
        '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: Association | None = None) -> bool | None:
        if obj is None:
            return None

        return obj.is_active


admin.site.register(Association, AssociationAdmin)
