from django import forms
from .models import Parede, TIPO_DIFERENCIAL_INSOLACAO_NORTE, TIPO_DIFERENCIAL_INSOLACAO_SUL, TIPO_DIFERENCIAL_INSOLACAO_LESTE, TIPO_DIFERENCIAL_INSOLACAO_OESTE

from .models import Parede, TIPO_PAREDE_CHOICES, TIPO_DIFERENCIAL_INSOLACAO_NORTE, TIPO_DIFERENCIAL_INSOLACAO_SUL, TIPO_DIFERENCIAL_INSOLACAO_LESTE, TIPO_DIFERENCIAL_INSOLACAO_OESTE

class ParedeForm(forms.ModelForm):
    # Campos explícitos com valor inicial
    tipo_parede_norte = forms.ChoiceField(
        choices=TIPO_PAREDE_CHOICES,
        required=False,
        label="Tipo de Parede Norte",
        initial="externo"  # Define "externo" como valor inicial
    )
    tipo_parede_sul = forms.ChoiceField(
        choices=TIPO_PAREDE_CHOICES,
        required=False,
        label="Tipo de Parede Sul",
        initial="externo"
    )
    tipo_parede_leste = forms.ChoiceField(
        choices=TIPO_PAREDE_CHOICES,
        required=False,
        label="Tipo de Parede Leste", 
        initial="externo"
    )
    tipo_parede_oeste = forms.ChoiceField(
        choices=TIPO_PAREDE_CHOICES,
        required=False,
        label="Tipo de Parede Oeste",
        initial="externo"
    )

    # Campos de diferencial de insolação
    diferencial_insolacao_norte = forms.ChoiceField(
        choices=TIPO_DIFERENCIAL_INSOLACAO_NORTE,
        required=False,
        label="Diferencial de Insolação Norte"
    )
    diferencial_insolacao_sul = forms.ChoiceField(
        choices=TIPO_DIFERENCIAL_INSOLACAO_SUL,
        required=False,
        label="Diferencial de Insolação Sul"
    )
    diferencial_insolacao_leste = forms.ChoiceField(
        choices=TIPO_DIFERENCIAL_INSOLACAO_LESTE,
        required=False,
        label="Diferencial de Insolação Leste"
    )
    diferencial_insolacao_oeste = forms.ChoiceField(
        choices=TIPO_DIFERENCIAL_INSOLACAO_OESTE,
        required=False,
        label="Diferencial de Insolação Oeste"
    )

    class Meta:
        model = Parede
        fields = [
            'area_parede_norte', 'coeficiente_parede_norte', 'tipo_parede_norte', 'diferencial_insolacao_norte',
            'area_parede_sul', 'coeficiente_parede_sul', 'tipo_parede_sul', 'diferencial_insolacao_sul',
            'area_parede_leste', 'coeficiente_parede_leste', 'tipo_parede_leste', 'diferencial_insolacao_leste',
            'area_parede_oeste', 'coeficiente_parede_oeste', 'tipo_parede_oeste', 'diferencial_insolacao_oeste'
        ]

        labels = {
            'area_parede_norte': 'Área da Parede Norte (m²)',
            'coeficiente_parede_norte': 'Coeficiente de Transmissão Norte (W/m²·°C)',
            'tipo_parede_norte': 'Tipo de Parede Norte',
            
            'area_parede_sul': 'Área da Parede Sul (m²)',
            'coeficiente_parede_sul': 'Coeficiente de Transmissão Sul (W/m²·°C)',
            'tipo_parede_sul': 'Tipo de Parede Sul',
            
            'area_parede_leste': 'Área da Parede Leste (m²)',
            'coeficiente_parede_leste': 'Coeficiente de Transmissão Leste (W/m²·°C)',
            'tipo_parede_leste': 'Tipo de Parede Leste',
            
            'area_parede_oeste': 'Área da Parede Oeste (m²)',
            'coeficiente_parede_oeste': 'Coeficiente de Transmissão Oeste (W/m²·°C)',
            'tipo_parede_oeste': 'Tipo de Parede Oeste',
        }

        widgets = {
            'area_parede_norte': forms.NumberInput(attrs={'step': '0.01'}),
            'coeficiente_parede_norte': forms.NumberInput(attrs={'step': '0.01'}),
            'area_parede_sul': forms.NumberInput(attrs={'step': '0.01'}),
            'coeficiente_parede_sul': forms.NumberInput(attrs={'step': '0.01'}),
            'area_parede_leste': forms.NumberInput(attrs={'step': '0.01'}),
            'coeficiente_parede_leste': forms.NumberInput(attrs={'step': '0.01'}),
            'area_parede_oeste': forms.NumberInput(attrs={'step': '0.01'}),
            'coeficiente_parede_oeste': forms.NumberInput(attrs={'step': '0.01'}),
        }
