# users/forms.py
from django import forms
from .models import CustomUser

# class UserRegistrationForm(forms.ModelForm):
#     referral_code_input = forms.CharField(required=False, label="Referral Code")
#     agreed_terms = forms.BooleanField(required=True, label="I agree to the terms and conditions")

#     class Meta:
#         model = CustomUser
#         fields = [
#             'first_name', 'last_name', 'mobile_number', 'email',
#             'user_type', 'state', 'city', 'pincode'
#         ]

#     def clean_referral_code_input(self):
#         code = self.cleaned_data.get('referral_code_input')
#         if code:
#             try:
#                 return CustomUser.objects.get(referral_code=code)
#             except CustomUser.DoesNotExist:
#                 raise forms.ValidationError("Invalid referral code.")
#         return None

#     def save(self, commit=True):
#         user = super().save(commit=False)
#         referred_by = self.cleaned_data.get('referral_code_input')
#         if referred_by:
#             user.referred_by = referred_by
#         if commit:
#             user.save()
#         return user

class UserRegistrationForm(forms.ModelForm):
    referral_code_input = forms.CharField(
        required=False, label="Referral Code",
        widget=forms.TextInput(attrs={'placeholder': 'Referral Code'})
    )
    agreed_terms = forms.BooleanField(
        required=True, label="I agree to the terms and conditions"
    )

    class Meta:
        model = CustomUser
        fields = [
            'first_name', 'last_name', 'mobile_number', 'email',
            'user_type', 'state', 'city', 'pincode'
        ]
        widgets = {
            'first_name': forms.TextInput(attrs={'placeholder': 'First Name'}),
            'last_name': forms.TextInput(attrs={'placeholder': 'Last Name'}),
            'mobile_number': forms.TextInput(attrs={'placeholder': 'Mobile Number'}),
            'email': forms.EmailInput(attrs={'placeholder': 'Email'}),
            'user_type': forms.Select(attrs={'class': 'form-select'}),
            'state': forms.TextInput(attrs={'placeholder': 'State'}),
            'city': forms.TextInput(attrs={'placeholder': 'City'}),
            'pincode': forms.TextInput(attrs={'placeholder': 'Pincode'}),
        }

    def clean_referral_code_input(self):
        code = self.cleaned_data.get('referral_code_input')
        if code:
            try:
                return CustomUser.objects.get(referral_code=code)
            except CustomUser.DoesNotExist:
                raise forms.ValidationError("Invalid referral code.")
        return None

    def save(self, commit=True):
        user = super().save(commit=False)
        referred_by = self.cleaned_data.get('referral_code_input')
        if referred_by:
            user.referred_by = referred_by
        if commit:
            user.save()
        return user

# 339331

# users/forms.py


class LoginForm(forms.Form):
    mobile_number = forms.CharField(
        max_length=10,
        widget=forms.TextInput(attrs={'placeholder': 'Mobile Number'})
    )
    login_pin = forms.CharField(
        max_length=4,
        widget=forms.PasswordInput(attrs={'placeholder': 'Login PIN'})
    )
    remember_me = forms.BooleanField(required=False)


class SetPinsForm(forms.Form):
    login_pin = forms.CharField(
        label="Create 4-digit Login PIN",
        max_length=4,
        min_length=4,
        widget=forms.PasswordInput
    )
    transaction_pin = forms.CharField(
        label="Create 4-digit Transaction PIN",
        max_length=4,
        min_length=4,
        widget=forms.PasswordInput
    )

from django import forms
from .models import CustomUser

class RoleUpdateForm(forms.ModelForm):
    class Meta:
        model = CustomUser
        fields = ['role']

from django import forms
from django.contrib.auth.forms import AuthenticationForm

class CustomLoginForm(AuthenticationForm):
    remember_me = forms.BooleanField(required=False, widget=forms.CheckboxInput(), label="Remember Me")
