Feature/phone register (#11)

Co-authored-by: ISMAIL MASSERAN <topaz@ISMAILs-Macbook.local>
Co-authored-by: ISMAIL MASSERAN <topaz@Mac.dlinkrouter.local>
Reviewed-on: #11
This commit was merged in pull request #11.
This commit is contained in:
2026-07-14 12:03:22 +08:00
parent 1e50e3d19f
commit b05e074456
160 changed files with 6497 additions and 759 deletions
@@ -46,6 +46,31 @@ class UserRepository implements UserRepositoryInterface
}
}
private function applyCompanyNameFilter($query, string $companyName): void
{
if ($companyName === '') {
return;
}
$query->whereHas('employments', function ($employmentQuery) use ($companyName) {
$employmentQuery
->where('company_name', $companyName)
->whereRaw('employments.id = (
SELECT e2.id
FROM employments e2
WHERE e2.user_id = employments.user_id
ORDER BY e2.is_current DESC, e2.start_date DESC
LIMIT 1
)');
});
}
private function applyListFilters($query, array $filters): void
{
$this->applyDateRangeFilters($query, $filters);
$this->applyCompanyNameFilter($query, $filters['company_name'] ?? '');
}
/**
* Get all Users with pagination and search
*/
@@ -107,7 +132,7 @@ class UserRepository implements UserRepositoryInterface
$query->where('status', $status);
}
$this->applyDateRangeFilters($query, $dateFilters);
$this->applyListFilters($query, $dateFilters);
return $query->paginate($perPage);
}
@@ -177,7 +202,7 @@ class UserRepository implements UserRepositoryInterface
$baseQuery->where('status', $status);
}
$this->applyDateRangeFilters($baseQuery, $dateFilters);
$this->applyListFilters($baseQuery, $dateFilters);
$total = (int) (clone $baseQuery)->count();