from django import forms
from .models import Vidro, TIPO_VIDRO_CHOICES, DIFERENCIAL_INSOLACAO_NORTE_CHOICES, DIFERENCIAL_INSOLACAO_SUL_CHOICES, DIFERENCIAL_INSOLACAO_LESTE_CHOICES, DIFERENCIAL_INSOLACAO_OESTE_CHOICES

class VidroForm(forms.ModelForm):
    # Campos para cada vidro, com escolha do tipo de vidro e diferencial de insolação
    tipo_vidro_norte = forms.ChoiceField(choices=TIPO_VIDRO_CHOICES, required=False)
    diferencial_insolacao_norte = forms.ChoiceField(choices=DIFERENCIAL_INSOLACAO_NORTE_CHOICES, required=False)
    
    tipo_vidro_sul = forms.ChoiceField(choices=TIPO_VIDRO_CHOICES, required=False)
    diferencial_insolacao_sul = forms.ChoiceField(choices=DIFERENCIAL_INSOLACAO_SUL_CHOICES, required=False)
    
    tipo_vidro_leste = forms.ChoiceField(choices=TIPO_VIDRO_CHOICES, required=False)
    diferencial_insolacao_leste = forms.ChoiceField(choices=DIFERENCIAL_INSOLACAO_LESTE_CHOICES, required=False)
    
    tipo_vidro_oeste = forms.ChoiceField(choices=TIPO_VIDRO_CHOICES, required=False)
    diferencial_insolacao_oeste = forms.ChoiceField(choices=DIFERENCIAL_INSOLACAO_OESTE_CHOICES, required=False)

    class Meta:
        model = Vidro
        fields = [
            'area_vidro_norte', 'coeficiente_vidro_norte', 'tipo_vidro_norte', 'diferencial_insolacao_norte',
            'area_vidro_sul', 'coeficiente_vidro_sul', 'tipo_vidro_sul', 'diferencial_insolacao_sul',
            'area_vidro_leste', 'coeficiente_vidro_leste', 'tipo_vidro_leste', 'diferencial_insolacao_leste',
            'area_vidro_oeste', 'coeficiente_vidro_oeste', 'tipo_vidro_oeste', 'diferencial_insolacao_oeste',
        ]

        # Personalizando os rótulos no formulário
        labels = {
            'area_vidro_norte': 'Área do Vidro Norte (m²)',
            'coeficiente_vidro_norte': 'Coeficiente de Transmissão Norte (W/m²·°C)',
            'tipo_vidro_norte': 'Tipo do Vidro Norte',
            'diferencial_insolacao_norte': 'Diferencial de Insolação Norte',
            
            'area_vidro_sul': 'Área do Vidro Sul (m²)',
            'coeficiente_vidro_sul': 'Coeficiente de Transmissão Sul (W/m²·°C)',
            'tipo_vidro_sul': 'Tipo do Vidro Sul',
            'diferencial_insolacao_sul': 'Diferencial de Insolação Sul',

            'area_vidro_leste': 'Área do Vidro Leste (m²)',
            'coeficiente_vidro_leste': 'Coeficiente de Transmissão Leste (W/m²·°C)',
            'tipo_vidro_leste': 'Tipo do Vidro Leste',
            'diferencial_insolacao_leste': 'Diferencial de Insolação Leste',

            'area_vidro_oeste': 'Área do Vidro Oeste (m²)',
            'coeficiente_vidro_oeste': 'Coeficiente de Transmissão Oeste (W/m²·°C)',
            'tipo_vidro_oeste': 'Tipo do Vidro Oeste',
            'diferencial_insolacao_oeste': 'Diferencial de Insolação Oeste',
        }

        # Personalizando os widgets (aparência) dos campos
        widgets = {
            'area_vidro_norte': forms.NumberInput(attrs={'step': '0.01'}),
            'coeficiente_vidro_norte': forms.NumberInput(attrs={'step': '0.01'}),
            'area_vidro_sul': forms.NumberInput(attrs={'step': '0.01'}),
            'coeficiente_vidro_sul': forms.NumberInput(attrs={'step': '0.01'}),
            'area_vidro_leste': forms.NumberInput(attrs={'step': '0.01'}),
            'coeficiente_vidro_leste': forms.NumberInput(attrs={'step': '0.01'}),
            'area_vidro_oeste': forms.NumberInput(attrs={'step': '0.01'}),
            'coeficiente_vidro_oeste': forms.NumberInput(attrs={'step': '0.01'}),
        }
