from django.contrib import admin
from django.utils.html import format_html
from .models import Enquiry, GalleryImage


@admin.register(Enquiry)
class EnquiryAdmin(admin.ModelAdmin):
    list_display = ('customer_name', 'email', 'full_phone', 'country', 'is_read', 'created_at')
    list_filter = ('is_read', 'country', 'created_at')
    search_fields = ('customer_name', 'email', 'business_name', 'phone_number', 'comments')
    readonly_fields = ('created_at', 'updated_at')
    ordering = ('-created_at',)
    
    fieldsets = (
        ('Contact Information', {
            'fields': ('customer_name', 'email', ('phone_country', 'phone_number'))
        }),
        ('Business Details', {
            'fields': ('title', 'business_name', 'country', 'vin_chasis_number')
        }),
        ('Message', {
            'fields': ('comments',)
        }),
        ('Status', {
            'fields': ('is_read',)
        }),
        ('Timestamps', {
            'fields': ('created_at', 'updated_at'),
            'classes': ('collapse',)
        }),
    )
    
    actions = ['mark_as_read', 'mark_as_unread']
    
    def mark_as_read(self, request, queryset):
        queryset.update(is_read=True)
        self.message_user(request, f'{queryset.count()} enquiries marked as read.')
    mark_as_read.short_description = 'Mark selected enquiries as read'
    
    def mark_as_unread(self, request, queryset):
        queryset.update(is_read=False)
        self.message_user(request, f'{queryset.count()} enquiries marked as unread.')
    mark_as_unread.short_description = 'Mark selected enquiries as unread'


@admin.register(GalleryImage)
class GalleryImageAdmin(admin.ModelAdmin):
    list_display = ('preview', 'caption')
    
    def preview(self, obj):
        if obj.image:
            return format_html('<img src="{}" width="60" height="60" style="object-fit:cover;"/>', obj.image.url)
        return '-'
    