from django.contrib import admin
from .models import Rating

@admin.register(Rating)
class RatingAdmin(admin.ModelAdmin):
    list_display = ('content_object', 'user', 'score', 'created_at')
    list_filter = ('score', 'created_at', 'content_type')
    search_fields = ('user__username', 'user__email', 'comment')
    readonly_fields = ('created_at', 'updated_at')
    
    # GenericForeignKey alanlarını admin panelinde daha düzgün göstermek için
    # content_object alanını list_display'e ekledik, bu sayede hangi nesneye oy verildiği görülebilir.
    
    def get_queryset(self, request):
        # N+1 sorununu önlemek için related alanları prefetch edelim
        return super().get_queryset(request).select_related('user', 'content_type').prefetch_related('content_object')
