from django import forms
from .models import Theme, Shop

class ThemeForm(forms.ModelForm):
    class Meta:
        model = Theme
        fields = ['mode', 'primary_color']
        widgets = {
            'mode': forms.Select(attrs={
                'class': 'form-control'
            }),
            'primary_color': forms.TextInput(attrs={
                'type': 'color',
                'class': 'form-control',
                'style': 'height: 40px;'
            }),
        }

class ShopForm(forms.ModelForm):
    class Meta:
        model = Shop
        fields = ['name', 'address', 'phone', 'email', 'website', 'logo']
        widgets = {
            'name': forms.TextInput(attrs={'class': 'form-control'}),
            'address': forms.Textarea(attrs={'class': 'form-control', 'rows': 3}),
            'phone': forms.TextInput(attrs={'class': 'form-control'}),
            'email': forms.EmailInput(attrs={'class': 'form-control'}),
            'website': forms.URLInput(attrs={'class': 'form-control'}),
            'logo': forms.ClearableFileInput(attrs={'class': 'form-control-file'}),
        }

class MpesaSettingsForm(forms.ModelForm):
    """Form for editing Mpesa API settings."""
    class Meta:
        model = Shop
        fields = ['mpesa_consumer_key', 'mpesa_consumer_secret', 'mpesa_short_code', 'mpesa_passkey', 'mpesa_env']
        widgets = {
            'mpesa_consumer_key': forms.TextInput(attrs={'class': 'form-control'}),
            'mpesa_consumer_secret': forms.PasswordInput(attrs={'class': 'form-control'}, render_value=True),
            'mpesa_short_code': forms.TextInput(attrs={'class': 'form-control'}),
            'mpesa_passkey': forms.PasswordInput(attrs={'class': 'form-control'}, render_value=True),
            'mpesa_env': forms.Select(attrs={'class': 'form-control'}),
        }


class SMTPSettingsForm(forms.ModelForm):
    """Form for editing SMTP email settings."""
    class Meta:
        model = Shop
        fields = ['smtp_host', 'smtp_port', 'smtp_user', 'smtp_password', 'smtp_use_tls', 'smtp_use_ssl']
        widgets = {
            'smtp_host': forms.TextInput(attrs={'class': 'form-control'}),
            'smtp_port': forms.NumberInput(attrs={'class': 'form-control'}),
            'smtp_user': forms.EmailInput(attrs={'class': 'form-control'}),
            'smtp_password': forms.PasswordInput(attrs={'class': 'form-control'}, render_value=True),
            'smtp_use_tls': forms.CheckboxInput(attrs={'class': 'form-check-input'}),
            'smtp_use_ssl': forms.CheckboxInput(attrs={'class': 'form-check-input'}),
        }


class SMSSettingsForm(forms.ModelForm):
    """Form for editing SMS API settings."""
    class Meta:
        model = Shop
        fields = ['sms_api_url', 'sms_api_key', 'sms_sender_id']
        widgets = {
            'sms_api_url': forms.URLInput(attrs={'class': 'form-control'}),
            'sms_api_key': forms.PasswordInput(attrs={'class': 'form-control'}, render_value=True),
            'sms_sender_id': forms.TextInput(attrs={'class': 'form-control'}),
        }