from django.contrib import admin
from .models import Program, Application, ApplicationDocument, Enrollment


class ApplicationDocumentInline(admin.TabularInline):
    model = ApplicationDocument
    extra = 0
    readonly_fields = ['uploaded_at']


@admin.register(Program)
class ProgramAdmin(admin.ModelAdmin):
    list_display = ['name', 'level', 'duration', 'tuition_fee', 'is_active']
    list_filter = ['level', 'is_active']
    search_fields = ['name']


@admin.register(Application)
class ApplicationAdmin(admin.ModelAdmin):
    list_display = ['reference_number', 'full_name', 'email', 'program_applied', 'status', 'submitted_at']
    list_filter = ['status', 'program_applied', 'gender']
    search_fields = ['first_name', 'last_name', 'email', 'phone_number']
    readonly_fields = ['submitted_at', 'reviewed_at', 'reference_number']
    inlines = [ApplicationDocumentInline]
    ordering = ['-submitted_at']


@admin.register(Enrollment)
class EnrollmentAdmin(admin.ModelAdmin):
    list_display = ['student_number', 'student', 'program', 'enrolled_at', 'is_active']
    list_filter = ['program', 'is_active']
    search_fields = ['student_number', 'student__first_name', 'student__last_name']
    readonly_fields = ['student_number', 'enrolled_at']
