AssociateValidationService.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. ->with([
  13. 'dependents' => function ($query) {
  14. $query->where('status', 'active');
  15. },
  16. ])
  17. ->where(function ($query) use ($data, $search, $cpfSearch) {
  18. if (!empty($search)) {
  19. $query->where(function ($query) use ($search, $cpfSearch) {
  20. $query->where('registration', $search)
  21. ->orWhere('name', $search);
  22. if ($cpfSearch) {
  23. $query->orWhere('cpf', $cpfSearch);
  24. }
  25. });
  26. }
  27. })
  28. ->where('status', 'active')
  29. ->where('type', 'associado')
  30. ->first();
  31. }
  32. }