from django.contrib import admin
from .models import Event, EventReservation,EventCategory

@admin.register(Event)
class EventAdmin(admin.ModelAdmin):
    list_display = ('title', 'date', 'location', 'is_featured', 'partner', 'is_upcoming')
    list_filter = ('is_featured', 'date', 'partner')
    search_fields = ('title', 'description', 'location')
    date_hierarchy = 'date'
    
    # Avoid calling problematic properties in list display
    def is_upcoming(self, obj):
        try:
            return obj.date >= timezone.now().date()
        except:
            return False
    is_upcoming.boolean = True
    is_upcoming.short_description = "Upcoming"
    
    # Ensure we're not using any problematic methods in readonly_fields
    readonly_fields = ('created_at', 'updated_at')
    list_editable = ('is_featured',)

@admin.register(EventReservation)
class EventReservationAdmin(admin.ModelAdmin):
    list_display = ('event', 'user', 'reservation_date', 'status')
    list_filter = ('status', 'reservation_date')
    search_fields = ('event__title', 'user__username', 'user__email')
    date_hierarchy = 'reservation_date'
    list_editable = ('status',)

admin.site.register(EventCategory)
