feat: Implement admin role and permission management, employee management APIs, and user profile extensions.

This commit is contained in:
pbao9
2026-03-10 11:43:19 +07:00
parent a70900f542
commit cf0f2cf686
14 changed files with 924 additions and 187 deletions
@@ -0,0 +1,37 @@
<?php
namespace App\Repositories\Employee;
use App\Models\User;
use App\Repositories\BaseRepository;
class EmployeeRepository extends BaseRepository implements EmployeeRepositoryInterface
{
public function getModel(): string
{
return User::class;
}
public function filter(array $data): mixed
{
$query = $this->model->with('roles');
if (!empty($data['search'])) {
$search = $data['search'];
$query->where(function ($q) use ($search) {
$q->where('firstname', 'like', "%{$search}%")
->orWhere('lastname', 'like', "%{$search}%")
->orWhere('username', 'like', "%{$search}%")
->orWhere('email', 'like', "%{$search}%");
});
}
if (!empty($data['role'])) {
$query->whereHas('roles', fn($q) => $q->where('name', $data['role']));
}
$perPage = $data['per_page'] ?? 15;
return $query->orderBy('id', 'desc')->paginate($perPage);
}
}