input('q', ''); $users = DB::table('users') ->join('user_tenants', function ($join) use ($tenantId) { $join->on('users.id', '=', 'user_tenants.user_id') ->where('user_tenants.tenant_id', $tenantId) ->where('user_tenants.is_active', true); }) ->leftJoin('tenant_user_profiles as tp', function ($join) use ($tenantId) { $join->on('tp.user_id', '=', 'users.id') ->where('tp.tenant_id', $tenantId); }) ->leftJoin('departments', 'departments.id', '=', 'tp.department_id') ->whereNull('users.deleted_at') ->when($query, function ($q) use ($query) { $q->where(function ($sub) use ($query) { $sub->where('users.name', 'like', "%{$query}%") ->orWhere('departments.name', 'like', "%{$query}%"); }); }) ->orderBy('users.name') ->limit(30) ->select([ 'users.id', 'users.name', 'departments.name as department', 'tp.position_key as position', ]) ->get(); return response()->json([ 'success' => true, 'data' => $users, ]); } }