from django.contrib import admin

from .models import Course, Program, Semester


class CourseInline(admin.TabularInline):
    model = Course
    extra = 0


class SemesterInline(admin.TabularInline):
    model = Semester
    extra = 0


@admin.register(Program)
class ProgramAdmin(admin.ModelAdmin):
    list_display = ["name", "code", "department", "level", "status", "is_featured"]
    list_filter = ["level", "mode", "status", "is_featured"]
    search_fields = ["name", "code", "abbreviation", "department"]
    inlines = [SemesterInline]


@admin.register(Semester)
class SemesterAdmin(admin.ModelAdmin):
    list_display = ["program", "number", "title", "credit_hours"]
    list_filter = ["program"]
    inlines = [CourseInline]


@admin.register(Course)
class CourseAdmin(admin.ModelAdmin):
    list_display = ["code", "name", "semester", "credit_hours", "course_type"]
    list_filter = ["course_type", "semester__program"]
    search_fields = ["code", "name"]
