from django.contrib import admin
from .models import Event, EventPackage, EventLike, EventSave


class EventPackageInline(admin.TabularInline):
    model = EventPackage
    extra = 0


@admin.register(Event)
class EventAdmin(admin.ModelAdmin):
    list_display = ['title', 'vendor', 'category', 'event_type', 'status', 'is_free', 'views', 'created_at']
    list_filter = ['category', 'event_type', 'location_type', 'status', 'is_free']
    search_fields = ['title', 'description', 'vendor__shop_name']
    prepopulated_fields = {'slug': ('title',)}
    inlines = [EventPackageInline]
    raw_id_fields = ['vendor']
    readonly_fields = ['views', 'created_at', 'updated_at']


@admin.register(EventPackage)
class EventPackageAdmin(admin.ModelAdmin):
    list_display = ['name', 'event', 'price', 'price_type', 'max_attendees']
    list_filter = ['price_type']
    search_fields = ['name', 'event__title']
    raw_id_fields = ['event']


@admin.register(EventLike)
class EventLikeAdmin(admin.ModelAdmin):
    list_display = ['user', 'event', 'created_at']
    raw_id_fields = ['user', 'event']


@admin.register(EventSave)
class EventSaveAdmin(admin.ModelAdmin):
    list_display = ['user', 'event', 'created_at']
    raw_id_fields = ['user', 'event']
