from django.contrib import admin
from django.utils.html import format_html
from .models import SiteSetting, Service, Article, FAQ, Testimonial, ContactMessage, GalleryImage,SocialMedia,QuickContact


@admin.register(SiteSetting)
class SiteSettingAdmin(admin.ModelAdmin):
    list_display = ['site_name', 'doctor_name', 'phone', 'is_active']
    list_editable = ['is_active']
    fieldsets = (
        ('اطلاعات اصلی', {
            'fields': ('site_name', 'site_title', 'site_description', 'site_keywords', 'site_url')
        }),
        ('اطلاعات دکتر', {
            'fields': ('doctor_name', 'doctor_title', 'doctor_bio', 'doctor_image', 'doctor_experience_years')
        }),
        ('تماس', {
            'fields': ('phone', 'email', 'address', 'work_hours')
        }),
        ('شبکه‌های اجتماعی', {
            'fields': ('instagram', 'telegram', 'whatsapp'),
            'classes': ('collapse',)
        }),
        ('SEO', {
            'fields': ('google_analytics_id', 'google_tag_manager'),
            'classes': ('collapse',)
        }),
        ('وضعیت', {
            'fields': ('is_active',)
        }),
    )


@admin.register(Service)
class ServiceAdmin(admin.ModelAdmin):
    list_display = ['title', 'order', 'is_active', 'created']
    list_editable = ['order', 'is_active']
    prepopulated_fields = {'slug': ('title',)}
    search_fields = ['title', 'short_description']
    list_filter = ['is_active', 'created']
    fieldsets = (
        ('اطلاعات اصلی', {
            'fields': ('title', 'slug', 'icon', 'order', 'is_active')
        }),
        ('محتوا', {
            'fields': ('short_description', 'full_description', 'image')
        }),
        ('SEO', {
            'fields': ('meta_title', 'meta_description', 'meta_keywords'),
            'classes': ('collapse',)
        }),
    )


@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    list_display = ['title', 'category', 'views', 'is_published', 'is_featured', 'published_at']
    list_editable = ['is_published', 'is_featured']
    prepopulated_fields = {'slug': ('title',)}
    search_fields = ['title', 'summary', 'content']
    list_filter = ['is_published', 'category', 'created']
    date_hierarchy = 'published_at'
    fieldsets = (
        ('اطلاعات اصلی', {
            'fields': ('title', 'slug', 'category', 'summary', 'content', 'image')
        }),
        ('انتشار', {
            'fields': ('is_published', 'is_featured', 'published_at')
        }),
        ('SEO', {
            'fields': ('meta_title', 'meta_description', 'meta_keywords', 'canonical_url'),
            'classes': ('collapse',)
        }),
        ('AEO / FAQ Schema', {
            'fields': ('faq_schema', 'is_faq'),
            'classes': ('collapse',)
        }),
    )


@admin.register(FAQ)
class FAQAdmin(admin.ModelAdmin):
    list_display = ['question', 'category', 'order', 'is_active']
    list_editable = ['order', 'is_active']
    search_fields = ['question', 'answer']
    list_filter = ['category', 'is_active']


@admin.register(Testimonial)
class TestimonialAdmin(admin.ModelAdmin):
    list_display = ['name', 'title', 'rating', 'is_active', 'created']
    list_editable = ['is_active']
    list_filter = ['rating', 'is_active']


@admin.register(ContactMessage)
class ContactMessageAdmin(admin.ModelAdmin):
    list_display = ['name', 'phone', 'subject', 'is_read', 'created', 'ip_address']
    list_editable = ['is_read']
    list_filter = ['is_read', 'created']
    search_fields = ['name', 'phone', 'email', 'message']
    readonly_fields = ['ip_address', 'user_agent', 'created']
    fieldsets = (
        ('اطلاعات فرستنده', {
            'fields': ('name', 'phone', 'email', 'ip_address', 'user_agent')
        }),
        ('پیام', {
            'fields': ('subject', 'message')
        }),
        ('وضعیت', {
            'fields': ('is_read', 'created')
        }),
    )


@admin.register(GalleryImage)
class GalleryImageAdmin(admin.ModelAdmin):
    list_display = ['title', 'alt_text', 'order', 'is_active', 'image_preview']
    list_editable = ['order', 'is_active']
    readonly_fields = ['image_preview']

    def image_preview(self, obj):
        if obj.image:
            return format_html('<img src="{}" style="max-height: 100px;" />', obj.image.url)
        return "-"
    image_preview.short_description = 'پیش‌نمایش'

@admin.register(SocialMedia)
class SocialMediaAdmin(admin.ModelAdmin):
    list_display = ['platform', 'url', 'is_active', 'order']
    list_editable = ['is_active', 'order']
    list_filter = ['platform', 'is_active']
@admin.register(QuickContact)
class QuickContactAdmin(admin.ModelAdmin):
    list_display = ['phone', 'whatsapp', 'instagram', 'is_active']
    list_editable = ['is_active']
    fieldsets = (
        ('اطلاعات تماس', {
            'fields': ('phone', 'whatsapp', 'instagram')
        }),
        ('وضعیت', {
            'fields': ('is_active',)
        }),
    )