from django.contrib import admin
from django.utils.html import format_html
from .models import Contact, MembreEquipe, Service


@admin.register(Contact)
class ContactAdmin(admin.ModelAdmin):
    list_display   = ['nom', 'email', 'organisation', 'service', 'sujet', 'date_envoi', 'statut']
    list_filter    = ['lu', 'repondu', 'service', 'date_envoi']
    search_fields  = ['nom', 'email', 'sujet', 'organisation']
    readonly_fields = ['nom', 'email', 'telephone', 'organisation', 'service', 'sujet', 'message', 'date_envoi']
    list_per_page  = 20

    fieldsets = (
        ('👤 Expéditeur', {
            'fields': ('nom', 'email', 'telephone', 'organisation')
        }),
        ('📩 Message', {
            'fields': ('service', 'sujet', 'message', 'date_envoi')
        }),
        ('✅ Suivi', {
            'fields': ('lu', 'repondu')
        }),
    )

    def statut(self, obj):
        if obj.repondu:
            style = "background:#dcfce7;color:#166534;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600"
            texte = "✓ Répondu"
        elif obj.lu:
            style = "background:#fef9c3;color:#854d0e;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600"
            texte = "◉ Lu"
        else:
            style = "background:#fee2e2;color:#991b1b;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600"
            texte = "● Nouveau"
        return format_html('<span style="{}">{}</span>', style, texte)

    statut.short_description = 'Statut'

    def get_queryset(self, request):
        qs = super().get_queryset(request)
        return qs

    def has_add_permission(self, request):
        return False


@admin.register(MembreEquipe)
class MembreEquipeAdmin(admin.ModelAdmin):
    list_display  = ['nom', 'poste', 'experience', 'ordre', 'actif']
    list_editable = ['ordre', 'actif']
    search_fields = ['nom', 'poste']


@admin.register(Service)
class ServiceAdmin(admin.ModelAdmin):
    list_display  = ['titre', 'icone', 'ordre', 'actif']
    list_editable = ['ordre', 'actif']