from django import forms

from .models import ContactMessage

INPUT_CLASS = (
    "w-full rounded-xl bg-white/5 border border-white/10 px-4 py-3 text-sm text-neutral-100 "
    "placeholder-neutral-500 outline-none transition focus:border-brand-500 "
    "focus:ring-2 focus:ring-brand-500/30"
)


class ContactForm(forms.ModelForm):
    # Honeypot sederhana: bot biasanya mengisi semua field.
    nickname = forms.CharField(required=False, widget=forms.HiddenInput)

    class Meta:
        model = ContactMessage
        fields = ["name", "email", "subject", "message"]
        widgets = {
            "name": forms.TextInput(attrs={"class": INPUT_CLASS, "placeholder": "Nama kamu"}),
            "email": forms.EmailInput(attrs={"class": INPUT_CLASS, "placeholder": "email@contoh.com"}),
            "subject": forms.TextInput(attrs={"class": INPUT_CLASS, "placeholder": "Subjek pesan"}),
            "message": forms.Textarea(
                attrs={"class": INPUT_CLASS, "rows": 5, "placeholder": "Tulis pesan kamu di sini..."}
            ),
        }

    def clean(self):
        cleaned = super().clean()
        if cleaned.get("nickname"):
            raise forms.ValidationError("Pengiriman ditolak.")
        return cleaned
