from django import forms
from apps.outras_informacoes.models import PlantioOutrasInformacoesModels, PeriodoFloracao, PeriodoFrutificacao
from django.core.exceptions import ValidationError

import locale
locale.setlocale(locale.LC_NUMERIC, 'pt_BR.UTF-8')

class PlantioOutrasInformacoesForm(forms.ModelForm):
    class Meta:
        model = PlantioOutrasInformacoesModels
        exclude = ['especie']

    DESENVOLVIMENTO = [
        ('', 'Selecione'),  # Opção "Selecione" desativada e selecionada
        ('Lento', 'Lento'),
        ('Médio', 'Médio'),
        ('Rapido', 'Rapido'),
    ]
    ESTRATEGIA_CHOICES = [
        ('', 'Selecione'),  # Opção "Selecione" desativada e selecionada
        ('Diversidade', 'Diversidade'),
        ('Recobrimento', 'Recobrimento'),
    ]
    tolerencia_sombra = forms.CharField(
        label='Tolerância a Sombra:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "INDIFERENTE (Tolerante no início do ciclo)"
            }
        )
    )
    estrategia_ecologica = forms.ChoiceField(
        label='Estratégia ecológica de ocupação:',
        required=False,
        choices=ESTRATEGIA_CHOICES,
        widget=forms.Select(
            attrs={
                "class": "form-select",
            }
        )
    )
    desenvolvimento_muda_campo = forms.ChoiceField(
        label='Desenvolvimento da muda no campo:',
        required=False,
        choices=DESENVOLVIMENTO,
        widget=forms.Select(
            attrs={
                "class": "form-select",
            }
        )
    )
    adubacao = forms.CharField(
        label='Recomendação de adubação no plantio no campo:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "P3=> BDF: espéceis de Mata Seca (Ex.: Myracrodruon urundeuva)"
            }
        )
    )
    CADUCIFOLIA = [
        ('', 'Selecione'),
        ('Sim', 'Sim'),  # Opção "Selecione" desativada e selecionada
        ('Não', 'Não'),
    ]
    porte_planta = forms.CharField(
        label='Porte da planta:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "Palmeira"
            }
        )
    )
    caducifolia = forms.ChoiceField(
        label='Caducifolia:',
        required=False,
        choices=CADUCIFOLIA,
        widget=forms.Select(
            attrs={
                "class": "form-select",
            }
        )
    )
    Polinizacao = forms.CharField(
        label='Polinização::',
        required=False,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "Abelhas, besouros"}
        )
    )
    dispersao = forms.CharField(
        label='Dispersão:',
        required=False,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "Zoocoria (Fauna)"}
        )
    )
    uso_economico = forms.CharField(
        label='Uso Econômico:',
        required=False,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "Alimentício, Artesanal, Celulose"}
        )
    )


class PeriodoFloracaoForm(forms.ModelForm):
    class Meta:
        model = PeriodoFloracao
        exclude = ['especie']  # Exclua o campo especie

    PERIODOS_CHOICES = [
        ('', 'Selecione'),  # Opção "Selecione" desativada e selecionada
        ('Amazônia', 'Amazônia'),
        ('Caatinga', 'Caatinga'),
        ('Cerrado', 'Cerrado'),
        ('Mata Atlântica', 'Mata Atlântica'),
        ('Pampa', 'Pampa'),
        ('Pantanal', 'Pantanal'),
    ]

    MESES_CHOICES = [
        ('', 'Selecione'),  # Opção "Selecione" desativada e selecionada
        ('Janeiro', 'Janeiro'),
        ('Fevereiro', 'Fevereiro'),
        ('Março', 'Março'),
        ('Abril', 'Abril'),
        ('Maio', 'Maio'),
        ('Junho', 'Junho'),
        ('Julho', 'Julho'),
        ('Agosto', 'Agosto'),
        ('Setembro', 'Setembro'),
        ('Outubro', 'Outubro'),
        ('Novembro', 'Novembro'),
        ('Dezembro', 'Dezembro'),
    ]
    
    bioma_nome = forms.ChoiceField(
        required=False,
        choices=PERIODOS_CHOICES,
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "autoSizingSelect1",
                'style': 'width:100%',
            }
        ),
    )

    mes_inicio = forms.ChoiceField(
        required=False,
        choices=MESES_CHOICES,
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "autoSizingSelect2",
                'style': 'width:100%',
            }
        ),
    )

    mes_fim = forms.ChoiceField(
        required=False,
        choices=MESES_CHOICES,
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "autoSizingSelect3",
                'style': 'width:100%',
            }
        ),
    )


class PeriodoFrutificacaoForm(forms.ModelForm):
    class Meta:
        model = PeriodoFrutificacao
        exclude = ['especie']  # Exclua o campo especie

    PERIODOS_CHOICES = [
        ('', 'Selecione'),  # Opção "Selecione" desativada e selecionada
        ('Amazônia', 'Amazônia'),
        ('Caatinga', 'Caatinga'),
        ('Cerrado', 'Cerrado'),
        ('Mata Atlântica', 'Mata Atlântica'),
        ('Pampa', 'Pampa'),
        ('Pantanal', 'Pantanal'),
    ]

    MESES_CHOICES = [
        ('', 'Selecione'),  # Opção "Selecione" desativada e selecionada
        ('Janeiro', 'Janeiro'),
        ('Fevereiro', 'Fevereiro'),
        ('Março', 'Março'),
        ('Abril', 'Abril'),
        ('Maio', 'Maio'),
        ('Junho', 'Junho'),
        ('Julho', 'Julho'),
        ('Agosto', 'Agosto'),
        ('Setembro', 'Setembro'),
        ('Outubro', 'Outubro'),
        ('Novembro', 'Novembro'),
        ('Dezembro', 'Dezembro'),
    ]

    bioma_nome = forms.ChoiceField(
        required=False,
        choices=PERIODOS_CHOICES,
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "autoSizingSelect1",
                'style': 'width:100%',
            }
        ),
    )

    mes_inicio = forms.ChoiceField(
        required=False,
        choices=MESES_CHOICES,
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "autoSizingSelect2",
                'style': 'width:100%',
            }
        ),
    )

    mes_fim = forms.ChoiceField(
        required=False,
        choices=MESES_CHOICES,
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "autoSizingSelect3",
                'style': 'width:100%',
            }
        ),
    )

