"""Calendar Django admin registrations."""

from __future__ import annotations

from django.contrib import admin

from simorgh.apps.calendar.models import CalendarEvent, EventAttendee, EventLinkedObject


class EventAttendeeInline(admin.TabularInline):
    model = EventAttendee
    extra = 0
    fields = ("user", "external_email", "status")


class EventLinkedObjectInline(admin.TabularInline):
    model = EventLinkedObject
    extra = 0
    fields = ("content_type", "object_id")


@admin.register(CalendarEvent)
class CalendarEventAdmin(admin.ModelAdmin):
    list_display = ("title", "owner", "start_dt", "end_dt", "all_day", "tenant")
    list_filter = ("all_day", "is_recurring", "tenant")
    search_fields = ("title", "location", "owner__email")
    raw_id_fields = ("owner", "tenant", "organization_node")
    inlines = [EventAttendeeInline, EventLinkedObjectInline]


@admin.register(EventAttendee)
class EventAttendeeAdmin(admin.ModelAdmin):
    list_display = ("event", "user", "external_email", "status")
    list_filter = ("status",)
    raw_id_fields = ("event", "user")
