🧼 Padronização de texto no cadastro (nome/email/endereço)
Documentação KOLOS

🧼 Padronização de texto no cadastro (nome/email/endereço)

🎯 Contexto

Campos de cadastro (nome, email, cidade/bairro/rua e complementos) podem entrar com variações de caixa e espaços, gerando dados "feios" e inconsistentes. Isso afeta UX, buscas, relatórios, integrações e até duplicidade (ex.: email com espaços/case diferente).

✅ Decisão

  • Normalizar na hora de persistir (Actions), garantindo consistência independentemente do frontend.
  • Regras aplicadas agora:
    • Email: trim + colapsar espaços + lowercase.
    • Nome de pessoa / cidade / partes do endereço: trim + colapsar espaços + Title Case com exceções (ex.: "da", "de", "dos" ficam minúsculos quando não são a primeira palavra).
    • Complemento / texto livre: trim + colapsar espaços + capitalizar início e após . ! ?.
    • Nickname: apenas trim + colapsar espaços (não forçar caixa, para respeitar estilo do usuário).

🧩 Implementação

  • Utilitário central:
    • Kolos\Shared\Support\TextNormalizer
  • Aplicado em:
    • RegisterPlayerOnboardingAction (normaliza nome/email)
    • CreatePlayerAction (normaliza endereço/nickname/complemento)
    • CreateVenueAction (normaliza endereço/complemento e limpa espaços do nome)

▶️ Passos (Sail)

  • Rode a suíte:
    • sail artisan test

🧪 Validação

  • Teste garante normalização de:
    • nome: "bruno da silva" → "Bruno da Silva"
    • email: " BRUNO@EXAMPLE.COM " → "bruno@example.com"
    • cidade: "são paulo" → "São Paulo"
    • complemento: "apto 12. fundos" → "Apto 12. Fundos"

📌 Impacto

  • Novos:
    • src/Shared/Support/TextNormalizer.php
    • testes em cadastro cobrindo normalização