from django import forms
from .models import Message

class ContactForm(forms.ModelForm):
    # Champ piège pour les robots (Honeypot)
    # Si ce champ est rempli, c'est un spam, car il sera caché en CSS/JS pour les humains.
    bpot = forms.CharField(required=False, widget=forms.HiddenInput, label="Ne pas remplir")

    class Meta:
        model = Message
        fields = ['name', 'email', 'subject', 'content']
        widgets = {
            'name': forms.TextInput(attrs={'placeholder': 'Votre nom', 'class': 'form-control'}),
            'email': forms.EmailInput(attrs={'placeholder': 'votre@email.com', 'class': 'form-control'}),
            'subject': forms.TextInput(attrs={'placeholder': 'Sujet de votre message', 'class': 'form-control'}),
            'content': forms.Textarea(attrs={'placeholder': 'Votre message...', 'rows': 5, 'class': 'form-control'}),
        }

    def clean(self):
        cleaned_data = super().clean()
        bpot = cleaned_data.get('bpot')
        
        if bpot:
            # Un robot a rempli le champ caché -> On lève une erreur silencieuse ou explicite
            raise forms.ValidationError("Spam détecté.")
        
        return cleaned_data