from django.contrib import admin

from simorgh.apps.kb.models import KBArticle, KBArticleVersion, KBCategory


# ---------------------------------------------------------------------------
# Category
# ---------------------------------------------------------------------------

@admin.register(KBCategory)
class KBCategoryAdmin(admin.ModelAdmin):
    list_display = ("name", "slug", "tenant", "parent", "order", "created_at")
    list_filter = ("tenant",)
    search_fields = ("name", "slug")
    ordering = ("tenant", "order", "name")
    raw_id_fields = ("tenant", "parent")


# ---------------------------------------------------------------------------
# Article versions inline
# ---------------------------------------------------------------------------

class KBArticleVersionInline(admin.TabularInline):
    model = KBArticleVersion
    extra = 0
    readonly_fields = ("version", "changed_by", "change_summary", "created_at")
    fields = ("version", "changed_by", "change_summary", "created_at")
    ordering = ("-version",)
    can_delete = False


# ---------------------------------------------------------------------------
# Article
# ---------------------------------------------------------------------------

@admin.register(KBArticle)
class KBArticleAdmin(admin.ModelAdmin):
    list_display = ("title", "status", "visibility", "category", "author", "tenant", "published_at", "view_count")
    list_filter = ("tenant", "status", "visibility", "category")
    search_fields = ("title", "slug")
    ordering = ("-created_at",)
    raw_id_fields = ("tenant", "category", "author")
    readonly_fields = ("public_id", "view_count", "helpful_count", "not_helpful_count", "published_at", "created_at", "updated_at")
    inlines = [KBArticleVersionInline]
