"""Assignment Engine Django admin registration."""

from __future__ import annotations

from django.contrib import admin

from simorgh.apps.assignments.models import Assignment, AssignmentTag


@admin.register(AssignmentTag)
class AssignmentTagAdmin(admin.ModelAdmin):
    list_display  = ("name", "color", "tenant")
    list_filter   = ("tenant",)
    search_fields = ("name",)


@admin.register(Assignment)
class AssignmentAdmin(admin.ModelAdmin):
    list_display  = ("title", "assignment_type", "status", "priority", "assigned_to", "assigned_by", "due_date", "tenant")
    list_filter   = ("assignment_type", "status", "priority", "tenant")
    search_fields = ("title", "description")
    raw_id_fields = ("assigned_by", "assigned_to", "assigned_role", "assigned_org_unit", "completed_by", "tenant", "organization_node")
    readonly_fields = ("completed_at", "public_id", "created_at", "updated_at")
    fieldsets = (
        (None, {"fields": ("tenant", "organization_node", "title", "description")}),
        ("Classification", {"fields": ("assignment_type", "status", "priority")}),
        ("Assignment", {"fields": ("assigned_by", "assigned_to", "assigned_role", "assigned_org_unit")}),
        ("Completion", {"fields": ("completed_at", "completed_by")}),
        ("Schedule", {"fields": ("due_date",)}),
        ("Entity Link", {"fields": ("content_type", "object_id")}),
        ("Flags & Tags", {"fields": ("is_confidential", "tags")}),
        ("Metadata", {"fields": ("public_id", "created_at", "updated_at"), "classes": ("collapse",)}),
    )
