from django.contrib import admin
from .models import (
    College, HeroSection, Badge, AboutSection, AboutContent,
    DirectorSection, ProgramsSection, Program, WhyChooseSection,
    Feature, FacultySection, Faculty, TestimonialSection,
    Testimonial, RecruitersSection, Recruiter, InfrastructureSection,
    Facility
)

class BadgeInline(admin.TabularInline):
    model = Badge
    extra = 1

class HeroSectionAdmin(admin.ModelAdmin):
    inlines = [BadgeInline]
    list_display = ('college', 'title')

class AboutContentInline(admin.TabularInline):
    model = AboutContent
    extra = 1

class AboutSectionAdmin(admin.ModelAdmin):
    inlines = [AboutContentInline]
    list_display = ('college', 'title')

class DirectorSectionAdmin(admin.ModelAdmin):
    list_display = ('college', 'name', 'title')

class ProgramInline(admin.TabularInline):
    model = Program
    extra = 1

class ProgramsSectionAdmin(admin.ModelAdmin):
    inlines = [ProgramInline]
    list_display = ('college', 'title', 'has_doctoral_programs')

class FeatureInline(admin.TabularInline):
    model = Feature
    extra = 1

class WhyChooseSectionAdmin(admin.ModelAdmin):
    inlines = [FeatureInline]
    list_display = ('college', 'title')

class FacultyInline(admin.TabularInline):
    model = Faculty
    extra = 1

class FacultySectionAdmin(admin.ModelAdmin):
    inlines = [FacultyInline]
    list_display = ('college', 'title')

class TestimonialInline(admin.TabularInline):
    model = Testimonial
    extra = 1

class TestimonialSectionAdmin(admin.ModelAdmin):
    inlines = [TestimonialInline]
    list_display = ('college', 'title')

class RecruiterInline(admin.TabularInline):
    model = Recruiter
    extra = 1

class RecruitersSectionAdmin(admin.ModelAdmin):
    inlines = [RecruiterInline]
    list_display = ('college', 'title')

class FacilityInline(admin.TabularInline):
    model = Facility
    extra = 1

class InfrastructureSectionAdmin(admin.ModelAdmin):
    inlines = [FacilityInline]
    list_display = ('college', 'title')

class CollegeAdmin(admin.ModelAdmin):
    list_display = ('name', 'slug', 'priority_order')
    prepopulated_fields = {'slug': ('name',)}
    search_fields = ('name',)
    list_editable = ('priority_order',)

# Register all models with their respective admin classes
admin.site.register(College, CollegeAdmin)
admin.site.register(HeroSection, HeroSectionAdmin)
admin.site.register(AboutSection, AboutSectionAdmin)
admin.site.register(DirectorSection, DirectorSectionAdmin)
admin.site.register(ProgramsSection, ProgramsSectionAdmin)
admin.site.register(WhyChooseSection, WhyChooseSectionAdmin)
admin.site.register(FacultySection, FacultySectionAdmin)
admin.site.register(TestimonialSection, TestimonialSectionAdmin)
admin.site.register(RecruitersSection, RecruitersSectionAdmin)
admin.site.register(InfrastructureSection, InfrastructureSectionAdmin)