"""Django admin configuration for provisioning models."""

from __future__ import annotations

from django.contrib import admin
from django.utils.translation import gettext_lazy as _

try:
    from unfold.admin import ModelAdmin as UnfoldModelAdmin
except ImportError:
    UnfoldModelAdmin = admin.ModelAdmin  # type: ignore[assignment]

from simorgh.apps.provisioning.models import FixtureRun


@admin.register(FixtureRun)
class FixtureRunAdmin(UnfoldModelAdmin):
    list_display = (
        "kind",
        "tenant_slug",
        "workspace_slug",
        "items_created",
        "items_updated",
        "items_deleted",
        "duration_ms",
        "success",
        "created_at",
    )
    list_filter = ("kind", "success", "tenant_slug")
    search_fields = ("tenant_slug", "workspace_slug", "kind")
    readonly_fields = (
        "public_id",
        "kind",
        "tenant_slug",
        "workspace_slug",
        "fixture_names",
        "items_created",
        "items_updated",
        "items_deleted",
        "duration_ms",
        "success",
        "error_message",
        "meta",
        "created_at",
        "updated_at",
    )
    ordering = ("-created_at",)

    def has_add_permission(self, request) -> bool:  # noqa: ARG002
        return False

    def has_change_permission(self, request, obj=None) -> bool:  # noqa: ARG002
        return False
