SGEProduto · Domínio · Desenvolvimento
Repositório

technical-reference · implemented

Cast — CpfCast

Cast Eloquent que valida CPF e armazena o documento sem máscara.

Responsabilidade

Implementa CastsAttributes<string, string> para controlar a fronteira entre o valor recebido pela aplicação e o valor persistido.

OperaçãoComportamento
get()Retorna null para null; para os demais valores, retorna string sem alterar o valor.
set() com null ou ''Persiste null.
set() com valorUsa o helper global unmask(), valida com LaravelLegends\PtBrValidator\Rules\Cpf e retorna somente dígitos.
CPF inválidoLança InvalidArgumentException com mensagem em português.

Exemplo

PHP
$user->cpf = '529.982.247-25';
$user->save();

// banco: 52998224725

Uso

User possui cpf no $fillable, na docblock e no cast. O CPF permanece na conta como identificador único; user_personal_data não o replica.

Checklist

  • Implementar get() e set().
  • Remover máscara antes da persistência.
  • Rejeitar CPF inválido.
  • Cobrir CPF mascarado, limpo e inválido em tests/Unit/CpfCastTest.php.
  • Definir comportamento para string composta apenas por espaços.
  • Manter o cast em User, sem duplicar CPF no Model de dados pessoais.
  • Confirmar que CPF não é editável pela configuração do usuário.
  • Garantir que consultas e snapshots usem o formato canônico.

Relacionamentos