from django.contrib import admin

from .models import (
    Event,
    EventRegistration,
    EventTicketType,
    KidsAttendance,
    KidsEnrollment,
    KidsProgram,
)


# ---------------------------------------------------------------------------
# Events
# ---------------------------------------------------------------------------

@admin.register(Event)
class EventAdmin(admin.ModelAdmin):
    list_display = (
        "name",
        "event_type",
        "location",
        "start_date",
        "end_date",
        "capacity",
        "registered_count",
        "is_active",
    )
    list_filter = ("event_type", "is_active", "is_free", "location")
    search_fields = ("name", "description", "venue")


@admin.register(EventRegistration)
class EventRegistrationAdmin(admin.ModelAdmin):
    list_display = (
        "event",
        "member",
        "guest_name",
        "status",
        "ticket_code",
        "paid",
        "checked_in",
    )
    list_filter = ("status", "paid", "checked_in")
    search_fields = ("ticket_code", "guest_name", "guest_email")


@admin.register(EventTicketType)
class EventTicketTypeAdmin(admin.ModelAdmin):
    list_display = ("event", "name", "price", "capacity", "sold_count")
    list_filter = ("event",)
    search_fields = ("name",)


# ---------------------------------------------------------------------------
# Kids Programs
# ---------------------------------------------------------------------------

@admin.register(KidsProgram)
class KidsProgramAdmin(admin.ModelAdmin):
    list_display = (
        "name",
        "location",
        "age_min",
        "age_max",
        "capacity",
        "price_per_session",
        "monthly_price",
        "is_active",
    )
    list_filter = ("is_active", "location")
    search_fields = ("name", "description")


@admin.register(KidsEnrollment)
class KidsEnrollmentAdmin(admin.ModelAdmin):
    list_display = (
        "child_name",
        "child_age",
        "program",
        "parent",
        "status",
        "start_date",
        "end_date",
    )
    list_filter = ("status", "program")
    search_fields = ("child_name", "parent__user__username")


@admin.register(KidsAttendance)
class KidsAttendanceAdmin(admin.ModelAdmin):
    list_display = ("enrollment", "date", "check_in", "check_out", "picked_up_by")
    list_filter = ("date",)
    search_fields = ("enrollment__child_name", "picked_up_by")
