from django import forms
from .models import Customer, City, Product

class CustomerForm(forms.ModelForm):
    city = forms.ModelChoiceField(queryset=City.objects.all(), required=False)
    products = forms.ModelMultipleChoiceField(queryset=Product.objects.all(), required=False, widget=forms.CheckboxSelectMultiple)

    class Meta:
        model = Customer
        fields = ["name", "tax_code", 'vat_status','register_date', 'note', 'feedback', "city", "pic", "potential", "products", "address", "contact_person", "phone_number"]

    def clean_pic(self):
        """Chỉ cho phép thay đổi PIC nếu tiềm năng là 'Low' hoặc rỗng"""
        instance = self.instance
        pic = self.cleaned_data.get("pic")

        if instance and instance.pk and instance.potential not in ["", "Low"]:
            raise forms.ValidationError("Bạn chỉ có thể gán khách hàng này nếu tiềm năng là 'Low' hoặc rỗng.")

        return pic
