"""Delegation Engine Django admin registration."""

from __future__ import annotations

from django.contrib import admin

from simorgh.apps.delegations.models import DelegationLog, DelegationRule


@admin.register(DelegationRule)
class DelegationRuleAdmin(admin.ModelAdmin):
    list_display  = ("delegator", "delegate_to", "scope", "is_active", "start_date", "end_date", "tenant")
    list_filter   = ("is_active", "scope", "tenant")
    search_fields = ("reason",)
    raw_id_fields = ("delegator", "delegate_to", "delegate_role", "tenant", "organization_node", "created_by")
    readonly_fields = ("public_id", "created_at", "updated_at")
    fieldsets = (
        (None, {"fields": ("tenant", "organization_node", "delegator", "delegate_to", "delegate_role")}),
        ("Scope & Schedule", {"fields": ("scope", "start_date", "end_date", "is_active")}),
        ("Details", {"fields": ("reason", "created_by")}),
        ("Metadata", {"fields": ("public_id", "created_at", "updated_at"), "classes": ("collapse",)}),
    )


@admin.register(DelegationLog)
class DelegationLogAdmin(admin.ModelAdmin):
    list_display  = ("rule", "action", "tenant", "created_at")
    list_filter   = ("action", "tenant")
    search_fields = ("rule__delegator__email", "rule__delegate_to__email")
    raw_id_fields = ("tenant", "rule")
    readonly_fields = ("public_id", "created_at")
