from django import forms
from apps.clientes.models import ClientesModels, EmpresasModels


class ClientesForms(forms.ModelForm):
    class Meta:
        model = ClientesModels
        exclude = []

    nome_completo = forms.CharField(
        label='Nome:',
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "João da Silva",
            }
        )
    )
    inscricao_estadual = forms.CharField(
        label='Inscrição Estadual:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "123456-78"
            }
        )
    )
    cpf = forms.CharField(
        label='CPF:',
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "cpf",
                "placeholder": "123.456.789-00",
                "oninput": "formatarCPF(this)",
            }
        )
    )
    email = forms.CharField(
        label='Email:',
        required=False,
        max_length=100,
        widget=forms.EmailInput(
            attrs={
                "class": "form-control",
                "placeholder": "exemplo@email.com",
            }
        )
    )
    uf = forms.ChoiceField(
        label='UF:',
        required=False,
        choices=(
            ('', 'Selecione um estado'),
            ('BA', 'BA'),
            ('AC', 'AC'),
            ('AL', 'AL'),
            ('AP', 'AP'),
            ('AM', 'AM'),
            ('CE', 'CE'),
            ('DF', 'DF'),
            ('ES', 'ES'),
            ('GO', 'GO'),
            ('MA', 'MA'),
            ('MT', 'MT'),
            ('MS', 'MS'),
            ('MG', 'MG'),
            ('PA', 'PA'),
            ('PB', 'PB'),
            ('PR', 'PR'),
            ('PE', 'PE'),
            ('PI', 'PI'),
            ('RJ', 'RJ'),
            ('RN', 'RN'),
            ('RS', 'RS'),
            ('RO', 'RO'),
            ('RR', 'RR'),
            ('SC', 'SC'),
            ('SP', 'SP'),
            ('SE', 'SE'),
            ('TO', 'TO')),
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "uf",
            }
        ),
    )
    status = forms.ChoiceField(
        label='Status:',
        required=False,
        choices=(
            ('Ativo', 'Ativo'),
            ('Inativo', 'Inativo')),
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "status",
            }
        ),
    )
    cidade = forms.CharField(
        label='Cidade:',
        required=False,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "cidade",
                "placeholder": "São Paulo",
            }
        )
    )
    endereco = forms.CharField(
        label='Endereço:',
        required=False,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control col-sm-4",
                "id": "endereco",
                "placeholder": "Av. Paulista",
            }
        )
    )
    numero_casa = forms.CharField(
        label='Nº:',
        required=False,
        max_length=10,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control col-sm-4",
                "id": "numero_casa",
                "placeholder": "Número da residência",
            }
        )
    )
    bairro = forms.CharField(
        label='Bairro:',
        required=False,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "bairro",
                "placeholder": "Centro",
            }
        )
    )
    complemento = forms.CharField(
        label='Complemento:',
        required=False,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "complemento",
                "placeholder": "Digite informações adicionais, se necessário",
            }
        )
    )
    cep = forms.CharField(
        label='CEP:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "cep",
                "placeholder": "99999-999",
            }
        )
    )
    telefone_celular = forms.CharField(
        label='Tel. Celular:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "telefone_celular",
                "placeholder": "(00) 12345-6789",
            }
        )
    )
    telefone_residencial = forms.CharField(
        label='Tel. Residencial:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "telefone_residencial",
                "placeholder": "(00) 1234-5678",
            }
        )
    )


class EmpresasForms(forms.ModelForm):
    class Meta:
        model = EmpresasModels
        exclude = []

    cnpj = forms.CharField(
        label='CNPJ:',
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "cnpj",
                "placeholder": "123.456.789/0001-00",
            }
        )
    )
    inscricao_estadual = forms.CharField(
        label='Inscrição Estadual:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "0123456789"
            }
        )
    )
    razao_social = forms.CharField(
        label='Razão Social:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": ""
            }
        )
    )
    nome_fantasia = forms.CharField(
        label='Nome Fantasia:',
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": ""
            }
        )
    )
    telefone_celular = forms.CharField(
        label='Tel. Movel:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "(00) 0000-0000"
            }
        )
    )

    telefone_residencial = forms.CharField(
        label='Tel. Residencial:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "telefone_residencial",
                "placeholder": "(00) 0000-0000",
            }
        )
    )
    email = forms.CharField(
        label='Email:',
        required=False,
        max_length=100,
        widget=forms.EmailInput(
            attrs={
                "class": "form-control",
                "placeholder": "ama@viveiroama.com",
            }
        )
    )
    uf = forms.ChoiceField(
        label='UF:',
        required=False,
        choices=(
            ('', 'Selecione um estado'),
            ('BA', 'BA'),
            ('AC', 'AC'),
            ('AL', 'AL'),
            ('AP', 'AP'),
            ('AM', 'AM'),
            ('CE', 'CE'),
            ('DF', 'DF'),
            ('ES', 'ES'),
            ('GO', 'GO'),
            ('MA', 'MA'),
            ('MT', 'MT'),
            ('MS', 'MS'),
            ('MG', 'MG'),
            ('PA', 'PA'),
            ('PB', 'PB'),
            ('PR', 'PR'),
            ('PE', 'PE'),
            ('PI', 'PI'),
            ('RJ', 'RJ'),
            ('RN', 'RN'),
            ('RS', 'RS'),
            ('RO', 'RO'),
            ('RR', 'RR'),
            ('SC', 'SC'),
            ('SP', 'SP'),
            ('SE', 'SE'),
            ('TO', 'TO')),
        widget=forms.Select(
            attrs={
                "class": "form-select",
                "id": "uf",
            }
        ),
    )
    cidade = forms.CharField(
        label='Cidade:',
        required=False,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "cidade",
            }
        )
    )
    endereco = forms.CharField(
        label='Endereço:',
        required=False,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control col-sm-4",
                "id": "endereco",
                "placeholder": "Rua / AV / QD",
            }
        )
    )
    bairro = forms.CharField(
        label='Bairro:',
        required=False,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "bairro",
            }
        )
    )
    complemento = forms.CharField(
        label='Complemento:',
        required=False,
        max_length=200,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "complemento",
            }
        )
    )
    cep = forms.CharField(
        label='CEP:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "id": "cep",
                "placeholder": "00000-000",
            }
        )
    )
    contato_responsavel = forms.CharField(
        label='Tel. Responsavel:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": "(00) 0000-0000",
            }
        )
    )
    nome_responsavel = forms.CharField(
        label='Nome do Responsavel:',
        required=False,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "type": "text",
                "class": "form-control",
                "placeholder": ""
            }
        )
    )
