2026-01-18_cpf-cep-gps-foundation
🧭 Contexto
Você pediu três pilares para o cadastro e evolução do KOLOS:
- Cadastro com CPF para reduzir perfis fake e dar base para regras de nível.
- Endereço por CEP com preenchimento automático (só número manual).
- Preparar o sistema para geolocalização (GPS), para filtros “perto de mim” e descoberta.
✅ Decisão
- CPF (anti-fake / base de identidade)
- Adicionamos coluna
cpf (11 dígitos) em users, com unique.
- O Value Object
Kolos\Shared\ValueObjects\Cpf já valida dígitos verificadores.
- Observação: CPF não comprova posse sozinho; validação forte (KYC) pode ser adicionada depois (ex.: verificação por provedor/Serpro). Aqui garantimos formato + unicidade.
- CEP (autocompletar endereço)
- Criamos um cliente
ViaCepClient (integração simples com ViaCEP) e um endpoint GET /api/cep/{cep} para o front (Livewire/Alpine) consumir e preencher rua/bairro/cidade/UF.
- GPS / Geolocalização
- Iniciamos suporte de lat/lng no módulo Venue (campos
latitude/longitude), para receber coordenadas do navegador (quando UI existir) ou geocoding posterior.
- Por enquanto usamos
decimal(10,7) (sem PostGIS). Se/quando precisarmos de busca geoespacial avançada, avaliamos PostGIS.
🛠️ Passos (comandos via Sail)
sail artisan migrate
sail artisan test
🧪 Validação
GET http://localhost/api/cep/01001000 deve retornar JSON com logradouro/bairro/cidade/uf.
users.cpf aceita apenas 11 dígitos e é único (por DB).
- Tabela
venues existe com campos de endereço e latitude/longitude.
📦 Impacto
- Base preparada para cadastro “realista” (CPF + endereço por CEP) e features de localização.
- Próximo passo natural: implementar Player/Venue flows (Onda 2) consumindo
GET /api/cep/{cep}.