from django.contrib import admin
from .models import Event, User, Page, Gallery, Menu, Testimonial, TestimonialImage
from .models import MessageContact
from .models import AboutSection
from .models import Slider
from .models import Settings,Statistics, Partner,Reservation

admin.site.register(Settings)

@admin.register(Statistics)
class StatisticsAdmin(admin.ModelAdmin):
    list_display = ('clients_served', 'kilometers_traveled', 'events_organized', 'happy_clients')

@admin.register(Partner)
class PartnerAdmin(admin.ModelAdmin):
    list_display = ('name', 'logo')
@admin.register(Event)
class EventAdmin(admin.ModelAdmin):
    list_display = ('title', 'date', 'category', 'price')  # Affiche ces colonnes
    list_filter = ('category', 'date')  # Ajoute des filtres sur la catégorie et la date
    search_fields = ('title', 'location')  # Permet de rechercher par titre et lieu
    ordering = ('date',)  # Trie les événements par date
    fieldsets = (
        ("Informations générales", {"fields": ("title", "description", "category", "date", "location", "price")}),
        ("Média", {"fields": ("image",)}),
        ("Dates", {"fields": ("created_at", "updated_at")}),
    )
    readonly_fields = ("created_at", "updated_at")  # Empêche la modification des dates

# Enregistre les autres modèles normalement
admin.site.register(User)
admin.site.register(Page)
admin.site.register(Gallery)
admin.site.register(Menu)
admin.site.register(Testimonial)
admin.site.register(TestimonialImage)
class AboutSectionAdmin(admin.ModelAdmin):
    list_display = ('title', 'why_description', 'mission_description', 'services_description')
    fields = ('title', 'content', 'image', 'why_description', 'mission_description', 'services_description')

admin.site.register(AboutSection, AboutSectionAdmin)

class MessageContactAdmin(admin.ModelAdmin):
    list_display = ('name', 'email', 'phone', 'message')  # Retirer 'date_created'
    search_fields = ('name', 'email', 'message')
    list_filter = ('email',)  # Utiliser 'email' ou un autre champ comme filtre

admin.site.register(MessageContact, MessageContactAdmin)

@admin.register(Slider)
class SliderAdmin(admin.ModelAdmin):
    list_display = ('title', 'order')
    list_editable = ('order',)
    ordering = ('order',)
    
@admin.register(Reservation)
class ReservationAdmin(admin.ModelAdmin):
    list_display = ('first_name', 'last_name', 'email', 'phone_number', 'birth_date', 'passenger_count', 'reservation_date')
    list_filter = ('reservation_date',)
    search_fields = ('first_name', 'last_name', 'email')
    ordering = ('-reservation_date',)  # Trie les réservations par date décroissante