from django.contrib import admin
from .models import Project, ProjectImage, ProjectFeature


class ProjectImageInline(admin.TabularInline):
    model = ProjectImage
    extra = 3
    fields = ('image', 'caption', 'order')


class ProjectFeatureInline(admin.TabularInline):
    model = ProjectFeature
    extra = 4
    fields = ('icon', 'label', 'order')


@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
    list_display  = ('title', 'location', 'status', 'is_featured', 'is_published', 'order')
    list_editable = ('status', 'is_featured', 'is_published', 'order')
    list_filter   = ('status', 'is_published', 'is_featured')
    search_fields = ('title', 'location', 'description')
    prepopulated_fields = {'slug': ('title',)}
    inlines = [ProjectImageInline, ProjectFeatureInline]

    fieldsets = (
        ('Basic Info', {
            'fields': ('title', 'slug', 'location', 'status', 'is_published', 'is_featured', 'order')
        }),
        ('Description', {
            'fields': ('description',)
        }),
        ('Key Specs', {
            'fields': ('bedrooms_min', 'bedrooms_max', 'price_from', 'price_to', 'delivery_date', 'total_units'),
            'classes': ('collapse',),
        }),
        ('Media', {
            'fields': ('cover_image', 'video_url', 'brochure'),
        }),
        ('SEO', {
            'fields': ('meta_title', 'meta_description'),
            'classes': ('collapse',),
        }),
    )
