from django.contrib import admin
from .models import Quiz, Question, Option, Answer


@admin.register(Quiz)
class QuizAdmin(admin.ModelAdmin):
    list_display = ('name', 'is_published', 'created_at', 'updated_at')
    search_fields = ('name',)
    list_filter = ('is_published', 'created_at', 'updated_at')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):
    list_display = ('question_text', 'question_type', 'quiz', 'created_at', 'updated_at')
    search_fields = ('question_text', 'quiz__name')
    list_filter = ('question_type', 'quiz', 'created_at', 'updated_at')
    autocomplete_fields = ('quiz',)
    readonly_fields = ('created_at', 'updated_at')


@admin.register(Option)
class OptionAdmin(admin.ModelAdmin):
    list_display = ('option_text', 'question', 'created_at', 'updated_at')
    search_fields = ('option_text', 'question__question_text')
    list_filter = ('created_at', 'updated_at')
    autocomplete_fields = ('question',)
    readonly_fields = ('created_at', 'updated_at')


@admin.register(Answer)
class AnswerAdmin(admin.ModelAdmin):
    list_display = ('profile', 'question', 'answer_type', 'created_at', 'updated_at')
    search_fields = ('profile__user__username', 'question__question_text')
    list_filter = ('answer_type', 'created_at', 'updated_at')
    autocomplete_fields = ('profile', 'question', 'selected_option')
    filter_horizontal = ('selected_options',)  # For ManyToManyField
    readonly_fields = ('created_at', 'updated_at')
