from django.contrib import admin
from .models import Formation, Lesson, UserProgress


class LessonInline(admin.TabularInline):
    model = Lesson
    extra = 1
    ordering = ("order",)
    fields = ("title", "order", "pdf_file", "video_url", "video_file")


@admin.register(Formation)
class FormationAdmin(admin.ModelAdmin):
    list_display = ("title", "created_at")
    list_filter = ("created_at",)
    search_fields = ("title", "description")
    inlines = [LessonInline]
    fieldsets = (
        (None, {"fields": ("title", "description", "image")}),
        ("Dates", {"fields": ("created_at",), "classes": ("collapse",)}),
    )
    readonly_fields = ("created_at",)


@admin.register(Lesson)
class LessonAdmin(admin.ModelAdmin):
    list_display = ("title", "formation", "order", "has_video")
    list_filter = ("formation",)
    ordering = ("formation", "order")
    search_fields = ("title",)
    fieldsets = (
        (None, {"fields": ("formation", "title", "order")}),
        ("Contenu", {"fields": ("pdf_file", "video_url", "video_file", "content_text")}),
    )
    
    def has_video(self, obj):
        return bool(obj.video_url or obj.video_file)
    has_video.short_description = "A une vidéo"
    has_video.boolean = True


@admin.register(UserProgress)
class UserProgressAdmin(admin.ModelAdmin):
    list_display = ("user", "lesson", "is_completed", "score_quiz", "completed_at")
    list_filter = ("is_completed", "lesson__formation")
    search_fields = ("user__email", "lesson__title")
    readonly_fields = ("completed_at",)
