AssociateValidationService.php 891 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\Services;
  3. use App\Models\User;
  4. use App\Support\Cpf;
  5. class AssociateValidationService
  6. {
  7. public function validate(array $data): ?User
  8. {
  9. $search = $data['search'] ?? null;
  10. $cpfSearch = Cpf::digits($search);
  11. return User::query()
  12. ->where(function ($query) use ($data, $search, $cpfSearch) {
  13. if (!empty($search)) {
  14. $query->where(function ($query) use ($search, $cpfSearch) {
  15. $query->where('registration', $search)
  16. ->orWhere('name', $search);
  17. if ($cpfSearch) {
  18. $query->orWhere('cpf', $cpfSearch);
  19. }
  20. });
  21. }
  22. })
  23. ->where('status', 'active')
  24. ->where('type', 'associado')
  25. ->first();
  26. }
  27. }