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ção | Comportamento |
|---|---|
get() | Retorna null para null; para os demais valores, retorna string sem alterar o valor. |
set() com null ou '' | Persiste null. |
set() com valor | Usa o helper global unmask(), valida com LaravelLegends\PtBrValidator\Rules\Cpf e retorna somente dígitos. |
| CPF inválido | Lança InvalidArgumentException com mensagem em português. |
Exemplo
$user->cpf = '529.982.247-25';
$user->save();
// banco: 52998224725Uso
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()eset(). - 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.