Prompt — Integrar a lista de países nos formulários do InvestMoz
Actue como programador responsável pelo InvestMoz. Reutilize a lista de países existente na aplicação e disponibilize a selecção de país através de um dropdown pesquisável, consistente e acessível, em todos os campos aplicáveis.
1. Verificação inicial
Antes de implementar:
Identifique onde está armazenada a lista de países: tabela, ficheiro, configuração, serviço ou componente.
Localize os campos que solicitam país, incluindo país de origem, nacionalidade, residência, sede da empresa e origem do investimento.
Verifique os componentes de selecção e pesquisa já utilizados no portal.
Identifique campos de texto livre e dados antigos que necessitem de compatibilização.
Mantenha as tecnologias existentes. Não crie outra lista de países nem introduza uma biblioteca ou serviço externo quando os recursos actuais forem suficientes.
Se não encontrar a lista referida, informe essa ausência antes de criar uma fonte substituta.
2. Componente reutilizável
Criar ou adaptar um componente único de 
selecção de país com pesquisa
, reutilizável nos formulários públicos e administrativos.
O componente deve:
Apresentar o rótulo correspondente ao contexto: “País de origem”, “País de residência”, “Nacionalidade” ou outro.
Mostrar inicialmente “Seleccione um país”.
Permitir abrir a lista e pesquisar enquanto se escreve.
Mostrar os países com nomes em português, respeitando os dados e traduções existentes.
Guardar o identificador estável já utilizado pela aplicação, em vez de depender apenas do nome apresentado.
Suportar selecção única ou múltipla 
apenas
 quando o campo o justificar.
Permitir limpar campos opcionais.
Recuperar correctamente a selecção ao editar um registo ou 
ao 
regressar a uma etapa do formulário.
Não seleccionar automaticamente um país sem uma regra funcional explícita.
Para nacionalidade, distinguir o país da designação da nacionalidade, quando a estrutura existente disponibilizar ambos.
3. Pesquisa inteligente
Implementar pesquisa local ou no servidor, conforme a arquitectura e os componentes existentes, com:
Pesquisa sem distinguir maiúsculas de minúsculas;
Pesquisa tolerante a acentos;
Correspondência por nome completo, início do nome e partes do nome;
Pesquisa por códigos existentes, como “MZ” ou “MOZ”, quando disponíveis;
Reconhecimento de designações alternativas e traduções verificadas, por exemplo “Moçambique” e “Mozambique”;
Sugestões para pequenos erros de escrita, quando viáve
is
 com os recursos existentes.
Ordenar os resultados por relevância: correspondência exacta, início do nome, correspondência parcial e aproximação.
A pesquisa deve sugerir, 
não corrigir nem seleccionar silenciosamente
. O utilizador confirma sempre o país pretendido.
Não inventar países ou designações alternativas. Quando não houver resultados, 
exibi
r “Nenhum país encontrado” e permitir reformular a pesquisa, sem aceitar texto livre como país válido.
4. Aplicação nos formulários
Substituir os campos de introdução manual de país nos módulos aplicáveis, incluindo:
Investidores e proponentes;
Empresas e negócios existentes;
Oportunidades de investimento;
Representantes;
Parcerias;
Outros cadastros que utilizem países.
Preservar o significado de cada campo. País de origem, residência, sede e nacionalidade não devem ser preenchidos uns a partir dos outros sem confirmação.
Não limitar o país de origem do proponente a Moçambique apenas porque a oportunidade se localiza em Moçambique.
Preservar os valores seleccionados na gravação de rascunhos, submissão, edição e validação com erros.
5. Dados existentes e validação
Reutilizar a fonte de países como referência central.
Validar no servidor se o identificador submetido pertence à lista permitida.
Preservar integrações que dependam dos identificadores ou códigos actuais.
Identificar nomes antigos, abreviaturas, traduções e possíveis duplicações.
Converter automaticamente apenas correspondências inequívocas.
Produzir uma lista de valores ambíguos ou desconhecidos para revisão.
Não apagar nem substituir dados antigos com base em aproximações de pesquisa.
Caso sejam necessárias migrações, executá-las de forma incremental e testável, preservando os valores originais e permitindo reversão.
6. Utilização e acessibilidade
Garantir:
Funcionamento em computador, tablet e telemóvel;
Navegação por teclado, com abertura, pesquisa, selecção e fecho;
Rótulo associado ao campo e indicação de obrigatoriedade;
Foco visível e identificação da opção seleccionada;
Compatibilidade com leitores de ecrã;
Mensagens claras de erro, carregamento e ausência de resultados;
Apresentação de nomes longos sem impedir a selecção.
Não depender exclusivamente de bandeiras para identificar países. Manter o estilo visual e os padrões de acessibilidade do portal.
7. Desempenho e privacidade
Evitar carregar repetidamente a mesma lista. Reutilizar os mecanismos de cache ou partilha de dados já disponíveis.
Se a pesquisa ocorrer no servidor, limitar chamadas durante a escrita e evitar que respostas antigas substituam resultados mais recentes.
Não enviar dados pessoais a serviços externos para sugerir países.
8. Critérios de aceitação e entrega
Confirmar através de testes que:
Os campos identificados utilizam a mesma fonte de países.
É possível encontrar Moçambique através de “Moç”, “mocambique” e dos códigos existentes.
Designações alternativas verificadas apresentam o país correcto.
Pequenos erros podem gerar sugestões, sem selecção automática.
O valor escolhido mantém-se após guardar, editar ou ocorrer um erro de validação.
Valores inexistentes são rejeitados no servidor.
Dados antigos não são perdidos nem convertidos indevidamente.
O componente funciona por teclado e em dispositivos móveis.
As alterações não afectam funcionalidades não relacionadas.
Entregar um resumo dos formulários actualizados, da fonte reutilizada, dos testes executados e dos dados que necessitam de revisão manual.