Criar o cadastro de contatos.

Campos da tabela:

- id PK
- id_conta FK
- tipo_contato ENUM (CLIENTE, FORNECEDOR, TRANSPORTADOR, ESTRANGEIRO)
- nome VARCHAR(255) NOT NULL
- nome_fantasia VARCHAR(255)
- tipo_documento ENUM(CPF,CNPJ, OUTRO)
- numero_documento VARCHAR(50)
- numero_telefone VARCHAR(50)
- email VARCHAR(100)
- cep VARCHAR(15)
- logradouro TEXT
- numero VARCHAR(15)
- complemento TEXT
- bairro VARCHAR(100)
- estado
- municipio
- observacoes TEXT
- status ENUM('A', 'I')
- deletado ENUM('S', 'N')
- datahora_registro
- datahora_atualizacao

Requisitos:

- Criar a tabela no banco e registrar o SQL em `back/Database/`.
- Criar controllers e models relacionados.
- Criar as telas seguindo os padroes do projeto.
- Usar como referencia o cadastro de empresa.
- O campo CEP deve buscar na rota de consulta existente e preencher os campos de endereco.
- Campos de status devem seguir o padrao do sistema e ser exibidos como toggle/switch.
- Novos cadastros nao devem ser agrupados no menu sem solicitacao explicita.
- O campo numero_documento deve trocar a mascara conforme tipo_documento: CPF ou CNPJ; OUTRO fica livre.
- Campos de telefone devem sempre usar mascara no sistema.
- Ao salvar, valores mascarados devem ser enviados sem mascara.
- Consulta de CEP deve tentar a API interna primeiro e usar ViaCEP direto no frontend como fallback quando o backend estiver indisponivel.
